NFTLiquidator::placeBid()
In the placeBid function of the NFTLiquidator contract, when a new bid is placed, the contract attempts to refund the previous highest bidder using a direct transfer:
Because Solidity’s transfer forwards only 2300 gas, a malicious bidder could deploy a contract whose fallback (or receive) function deliberately reverts. If that bidder becomes the highest bidder, any subsequent bid will trigger a refund to that bidder—but the refund will always revert. As a result, every new bid will fail, effectively freezing the auction and allowing the attacker to win at a low cost.
Malicious Bidder Setup:
The attacker deploys a contract with a fallback function that always reverts on receiving Ether.
Becoming the Highest Bidder:
The attacker uses this contract to place a bid. Because the malicious fallback always reverts on refund, any later attempt to outbid the attacker will call:
which will revert.
Auction Lockdown:
When any honest bidder tries to place a higher bid, the refund to the malicious bidder fails, reverting the entire transaction. This denial-of-service (DoS) situation prevents further bidding, allowing the attacker to win the auction and potentially manipulate the outcome.
Auction Integrity:
The attack undermines the auction mechanism by locking it, thereby enabling the attacker to secure the NFT at an unfair price.
Economic Loss:
Legitimate bidders are prevented from participating, potentially causing economic harm to market participants and distorting the liquidation process.
Replace the push-based refund mechanism with a pull-based approach. Instead of directly transferring Ether to the highest bidder during buyBackNFT, record the refund amount in a mapping that the bidder can withdraw in a separate transaction. Alternatively, use a low‑level call (e.g., using call{value: ...}) and handle refund failures gracefully without reverting the entire 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.