Normally, an NFT auction should have a clear initial duration (e.g., 3 days), and near the end of the auction, an extension mechanism (e.g., +15 minutes) can be applied to prevent last-second sniping.
In the current implementation, the contract only defines S_AUCTION_EXTENSION_DURATION = 15 minutes and directly applies it when setting auctionEnd after the first bid. This means the auction lasts only 15 minutes instead of the 3 days stated in the documentation/README, leading to inconsistent behavior and logical confusion.
Likelihood:
This will always occur when any auction receives its first bid.
The issue affects every auction’s lifecycle.
Impact:
User experience mismatch — Users expect a 3-day auction, but auctions only last 15 minutes.
Security risk — Short auctions are vulnerable to sniping or manipulation, undermining fairness.
After deployment, a seller lists an NFT for auction.
When the first bid is placed, listing.auctionEnd is set to block.timestamp + 15 minutes.
Even if the frontend shows a 3-day auction, the on-chain logic ends it in 15 minutes.
Introduce a separate initial auction duration constant (S_AUCTION_DURATION = 3 days) for first bids, while keeping S_AUCTION_EXTENSION_DURATION = 15 minutes for extensions near the end.
Documentation for BidBeasts Marketplace is incomplete or inaccurate, potentially leading to misconfigurations or security misunderstandings.
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.