The placeBid
function uses transfer
to refund the previous highest bidder, and if this refund fails, the entire bid transaction is reverted. This flaw allows a malicious bidder to block the auction by making refunds fail.
The placeBid
function in the NFTLiquidator
contract uses Solidity’s transfer to immediately refund the previous highest bidder.
This approach violates the security guarantee that critical auction operations must be atomic and not dependent on external contract behavior.
A malicious bidder uses a contract with a fallback function that reverts or consumes excessive gas. When a new bid is placed, the refund attempt fails, causing the entire transaction to revert and thereby blocking any further bids from being accepted.
I've rated this a Medium
since it prevents new bids from being processed, effectively halting the auction process. A malicious bidder who has successfully placed a bid gains the ability to block all subsequent bids, freezing the auction and potentially causing significant financial disruption with minimal effort when a bidder uses a contract programmed to revert on refund.
Manual Review
Implement a pull pattern for refunds so failed refunds do not cancel the bid transaction.
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.