The normal behavior of a bidding system should ensure that minimum bid requirements are applied consistently throughout the auction lifecycle.
The specific issue is that the validation for the first bid amount uses a strict greater-than comparison (>) instead of the greater-than-or-equal-to comparison (>=) used elsewhere in the code, making the first bid requirements inconsistent and more restrictive than subsequent bids.
Likelihood: Medium
This issue affects every auction at the first bid stage.
Users who attempt to bid exactly the minimum price will have their transactions unexpectedly revert.
Impact: Low
First-time bidders need to bid slightly higher than the minimum price even though the documentation might indicate that the minimum price is acceptable.
This creates a confusing user experience and might deter participation from users who don't understand why their minimum bid was rejected.
The financial impact is minimal as users only need to add a small amount above the minimum price (e.g., 1 wei).
his proof of concept demonstrates:
Inconsistent Validation: When placing the first bid exactly at the minimum price, the transaction will revert, but subsequent bids can be exactly at the minimum required increment.
User Confusion: Users expecting to bid the exact minimum price will have their transactions fail without a clear understanding of why.
Workaround: Users need to bid slightly above the minimum price (e.g., 1 ether + 1 wei) for their first bid to be accepted.
This simple change:
Consistent Requirements: Makes the bidding requirements consistent throughout the auction lifecycle by using the same comparison operator (>=) for both first and subsequent bids.
Improved User Experience: Allows users to bid exactly the minimum price on their first bid, which matches typical user expectations.
Clear Communication: Updates the error message to accurately reflect the actual requirement, avoiding confusion.
This change will make the auction system more intuitive and consistent for users without compromising the economic security of the bidding process. The consistency in validation rules will lead to fewer failed transactions and a better overall user experience.
First bid validation uses > instead of >=, preventing valid starting bids.
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.