Normal behavior: After a fixed 3-day auction, anyone should be able to call endAuction(tokenId) to finalize the auction.
If the highest bid ≥ minimum price: transfer the NFT to the winner and send payment minus 5% fee.
If no valid bids were made: return the NFT to the seller.
Issue: The current implementation uses a rolling 15-minute extension that starts only after the first bid.
settleAuction requires auctionEnd > 0, so third parties cannot finalize auctions where bids occurred but the rolling deadline keeps extending indefinitely.
This prevents the auction from ever ending naturally if last-minute bids keep extending the timer.
Likelihood:
Occurs when last-minute bids repeatedly arrive near the auction deadline, triggering the rolling extension logic.
Happens every time an active auction experiences bids close to the timer threshold (15 minutes before auctionEnd).
Impact:
Auctions may never naturally end, preventing the marketplace from finalizing NFT transfers and payments.
Breaks the specification guarantee that anyone can finalize the auction after 3 days, degrading user trust and platform reliability.
Use a fixed auction deadline of three days once the first bid has been submitted instead of rolling extension
The timer starts after the first bid
Rolling extensions are removed to avoid indefinite auction duration.
If no bids are ever placed, the seller can still call unlistNFT to reclaim the NFT.
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.