BidBeastsNFTMarket::S_AUCTION_EXTENSION_DURATIONis initialized to 15 minutesand applies this value to auctionEnd when the first bid is placed.According to the project documentation, the auction should last exactly 3 days, after which anyone can call endAuction(tokenId) to finalize the sale. No auction extension mechanism was mentioned.
This means that instead of running for 3 days, auctions end after 15 minutes, and can even be extended by another 15 minutes when bids arrive close to the deadline. This behavior contradicts the specification and creates confusion for users.
Likelihood:
This issue will occur whenever a new auction is created, since the code hard-codes an extension mechanism (15 minutes) instead of enforcing the documented 3 days deadline.
The problem manifests systematically during every auction lifecycle, because the auction end time is extended with each new qualifying bid.
Impact:
Auctions do not respect the intended fixed 3-day duration, breaking the marketplace’s expected rules and user trust.
Malicious or strategic bidders can artificially prolong auctions indefinitely, preventing finalization and potentially locking seller funds/NFTs longer than intended.
This allows repeated extensions with each new bid when calling BidBeastsNFTMarket::placeBid
For example, an auction meant to last 3 days could be extended indefinitely:
Alice lists her NFT => auctionEnd = block.timestamp + 3 days.
Bob bids shortly before expiration =>auctionEnd extended by +15 minutes.
Another bidder repeats near every new deadline =>auction never closes.
Replace the hard-coded S_AUCTION_EXTENSION_DURATION = 15 minutes with the intended fixed auction deadline (e.g., 3 days).
Remove the dynamic extension logic tied to new bids (auctionEnd = auctionEnd + S_AUCTION_EXTENSION_DURATION).
Enforce a strict auctionEnd = block.timestamp + 3 days when the auction is created, with no modifications thereafter.
Update the NatSpec/documentation to match the implemented logic (or vice versa), ensuring consistency.
Now, on BidBeastsNFTMarket::placeBid function you should make this changes:
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.