The placeBid function in NFTLiquidator.sol does not extend the auction end time when a new bid is placed. This allows for auction sniping, where a bidder can be placed in the last block of the auction end time and have no competition, undermining the integrity of the auction.
In the placeBid function, the auction's auctionEndTime remains unchanged when a new bid is placed:
Since the auction time does not get extended, a participant can wait until the last moment to bid, preventing other participants from placing counter-bids. This effectively enables a form of auction sniping, where the last bidder can win with minimal competition.
Unfair Auction Process: Bidders can game the system by placing a bid at the last block, preventing fair competition.
Suboptimal Revenue for Sellers: The auction may not reach its true market price since competing bidders are unable to respond.
Manual review
To prevent auction sniping, introduce an auction time extension mechanism where the auction end time is extended by a small duration (e.g., 5–10 minutes) when a bid is placed near the closing time.
Modify placeBid to extend the auction when a new bid is placed within a predefined threshold (e.g., 5 minutes before the end):
This ensures that last block bids extend the auction, allowing fair competition while preventing infinite extensions since each bid must be higher by a fixed percentage.
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.