The auction extension mechanism in the placeBid() function uses an inefficient time calculation that can excessively prolong auctions beyond the intended anti-sniping protection period. When a bid is placed within 15 minutes of the auction end, the system extends the auction by adding 15 minutes to the current auctionEnd time rather than setting it to 15 minutes from the current timestamp. This results in participants receiving significantly more than the intended 15-minute response window, potentially extending auctions by up to 30 minutes in some scenarios.
User places a bid when there are 14 minutes remaining until auction end
The extension logic triggers: listing.auctionEnd = listing.auctionEnd + 15 minutes
This results in 14 + 15 = 29 minutes total remaining time from the moment of bid placement
Other participants now have 29 minutes to respond instead of the intended 15 minutes
Auctions prolongation far beyond reasonable timeframes
Replace the current extension mechanism with a more efficient approach that provides exactly 15 minutes from the time of bid placement:
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.