The placeBid function in BidBeastsNFTMarket contract incorrectly emits the AuctionSettled event during regular bidding instead of when the auction actually settles.
Severity: Medium
Likelihood: High - This occurs on every regular bid placement
Impact:
Off-chain systems receive false settlement notifications
Frontend applications may show "Auction Complete" incorrectly
Users monitoring events think auctions have ended prematurely
Automated systems might stop bidding due to false completion signals
Event logs become unreliable for tracking actual settlements
The following test function demonstrates the vulnerability exists and passes successfully:
Test Results: PASS - This confirms the vulnerability
Impact demonstration:
Test expects AuctionSettled event during regular bidding and succeeds
Auction remains active (listing.listed = true)
Auction timer continues (auctionEnd > block.timestamp)
Off-chain systems receive false settlement notification while auction is ongoing
Replace the incorrect event emission with the appropriate BidPlaced event:
The AuctionSettled event should only be emitted in _executeSale() when the auction actually completes.
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.