list() enforces require(_price >= MIN_PRICE) (1 USDC) to prevent zero-value or dust-level listings and protect buyers from accidental purchases at negligible prices.
updatePrice only requires _newPrice > 0, permitting a seller to reduce an active listing price to 1 wei USDC — bypassing the floor that list() establishes. A buyer (potentially colluding with the seller) can then acquire the NFT at a near-zero cost.
Likelihood:
Any whitelisted seller with an active listing can call updatePrice at any time — no special preconditions required.
The manipulation can be targeted at a specific colluding buyer via off-chain coordination, making it a reliable griefing or value-extraction vector.
Impact:
A seller and colluding buyer can engineer a near-zero price purchase, extracting protocol value and undermining fair market conditions for other participants.
Add this to 2026-03-NFT-dealers/test/NFTDealersTest.t.sol,run forge test --match-test testPoC_M01_UpdatePriceBelowMinPrice -vvvv
Replace the > 0 check in updatePrice with the same >= MIN_PRICE threshold used in list().
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.