placeBid function emits the AuctionSettled event every time a new bid is placed, even though the auction has not actually ended.This causes off-chain systems, UIs, and analytics tools to incorrectly assume that the auction is over. This is a logic/event-handling bug that can mislead users and automated systems.Normal behavior: The AuctionSettled event should only be emitted once the auction has truly ended, either via:
_executeSale when BuyNow is triggered
settleAuction after auction expiry
takeHighestBid if the seller accepts the highest bid
In the current code, this event is emitted inside placeBid for every new bid, regardless of the auction state
Likelihood:
Any bidder placing a bid will trigger the misleading event — exploitation is trivial.
High chance of misleading off-chain observers, analytics, or bots that rely on this event.
Impact:
Misleading user interface and automation: Users may believe the auction is over and stop bidding or attempt incorrect actions.
In the foundry test I have made 2 bids using 2 distant addressed and at both times times the AuctionSettled event is gettin emitted.
Remove this code completely from line 147 because even if the auction is getting settled because of the person is buying the nft not bidding for it. The event is getting emitted in the _executeSale as well.
placeBid emits AuctionSettled even though the auction hasn’t ended, causing misleading event logs.
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.