Normal behavior:
According to the documentation, auctions are designed to last exactly 3 days. After the auction ends, anyone can call endAuction(tokenId) to finalize the process. Sellers only initiate auctions through listNFT and receive payment if the auction is successful.
Issue:
The code introduces a function takeHighestBid that allows the seller to accept the current highest bid before the auction end time. This contradicts the documentation and undermines the fairness of the bidding process. Bidders expect the auction to last for the full duration, giving them an opportunity to place higher bids.
Likelihood:
Always possible when seller chooses to end the auction early.
No protections exist in code to prevent premature termination.
Impact:
Buyers lose the guaranteed 3-day bidding window described in the documentation.
The marketplace may lose credibility if participants realize auctions can be closed arbitrarily.
Seller lists an NFT with minPrice 1 ETH.
Bidder A places 1.1 ETH bid.
Seller immediately calls takeHighestBid and ends the auction.
Bidder B never gets the chance to place a higher bid before the documented 3-day duration.
Decide whether takeHighestBid is an intended feature or not.
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.