list() enforces require(_price >= MIN_PRICE) but updatePrice() only checks _newPrice > 0. Sellers can bypass the price floor after listing.
Likelihood:
Any seller calls updatePrice with a value between 1 and 999,999 (below 1 USDC)
Impact:
Breaks the protocol's price floor invariant. Fee calculations on sub-USDC prices yield near-zero fees
A seller lists at 1 USDC (valid), then calls updatePrice(tokenId, 1) setting price to 0.000001 USDC. The > 0 check passes but >= MIN_PRICE is never enforced, breaking the price floor.
Apply the same MIN_PRICE check used in list() to maintain a consistent price floor across both creation and update paths.
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.