The protocol enforces a minimum listing price of MIN_PRICE as a procol-wide invariant at creation time. The updatePrice function is the only post-creation mutation point for the price field in the Listing struct, yet it validates only price above zero and completely omits the MIN_PRICE check. As a result a seller can reduce the listing price to as little as 1 wei of USDC after it has been created.
Likelihood: High
updatePrice() is a standard seller action, callbacl at any time on any active listing with no preconditions beyond being the seller.
Impact: High
Every downstream function that reads the price, silently inherits the broken invariant with no guards of their own. This affects protocol trust and protocol fees.
Replace the > 0 check in updatePrice() with the same >= MIN_PRICE guard already used in list(). This restores the invariant while updating the listing price.
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.