In the normal behavior, the auction extension logic should only extend the auction when there is still time remaining and the time left is less than the extension duration, preventing ended auctions from being restarted.
The specific issue is that the auction extension logic uses if (timeLeft < S_AUCTION_EXTENSION_DURATION) without checking if the auction has actually ended, allowing users to place bids on already-ended auctions and restart them by extending the deadline.
Likelihood: High
This will occur whenever someone places a bid after the auction has officially ended.
This will occur when timeLeft equals 0 (auction ended) since 0 < 15 minutes.
Impact: Medium
Ended auctions can be indefinitely restarted by placing new bids.
This breaks the fundamental auction mechanics where auctions should have definitive end times.
Add a condition timeLeft > 0 to the auction extension logic to ensure that only active auctions (with remaining time) can be extended, not ended auctions.
BidBeast marketplace contains a flaw in its auction timing mechanism. This causes the contract to miscalculate the actual end time of an auction, resulting in auctions that either conclude prematurely or run longer than specified.
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.