The Auction contract does not enforce a minimum duration for the auction. As a result, the auction could be configured with an unreasonably short time frame. In such a case, a bidder could place a last-minute bid and win all the ZENO tokens at a much lower price, as other participants may not have sufficient time to react before the auction ends.
Issue:
The constructor of the Auction contract accepts _startTime and _endTime as inputs without verifying that the auction duration (i.e., _endTime - _startTime) meets a minimum threshold. This oversight allows for the possibility of setting a very short auction duration, which may result in unfair bidding conditions.
Affected Code:
The contract does not include a check to ensure that the auction's duration is greater than a predefined minimum value, leaving room for the auction to be configured with a duration that is too short.
Unfair Bidding Opportunities:
Without a minimum duration, the auction could end very quickly, allowing a last-second bidder to acquire all ZENO tokens at a lower price. This results in an unfair advantage for that bidder, as other participants may not have sufficient time to respond to the auction before it closes.
Manual Code Review
Implement a Minimum Duration Validation:
Add a check in the constructor (or through an initialization function) to ensure that the auction duration is not shorter than a predefined minimum value. For example, you could add the following validation:
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.