The buyBackNFT() and endAuction() functions in NFTLiquidator.sol are designed to handle the liquidation and sale of NFTs through an auction mechanism. Both functions attempt to send ETH to StabilityPool, which lacks a receive() or fallback() function. This causes the ETH transfer to fail and revert the transaction, resulting in NFTs getting permanently stuck in NFTLiquidator.
ETH Transfer to StabilityPool Reverts Due to Missing receive()/fallback() Function
Code Snippets:
In buyBackNFT():
In endAuction():
The StabilityPool contract does not have a receive() or fallback() function to accept ETH. As a result, these transfers always revert.
Liquidity Lockup: The protocol cannot liquidate NFTs effectively, leading to bad debt accumulation.
NFTs get permanently locked in NFTLiquidator.sol, preventing users from reclaiming them.
ETH cannot be transferred to StabilityPool, disrupting the economic flow of the protocol.
manual review
Convert the ETH into crvUSD tokens then deposit them in LendingPool.sol and send the minted RTokens to the StabilityPool
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.