Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: medium
Valid

ETH Transfer to StabilityPool Causes Auction Failure in NFTLiquidator.sol

Summary

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.

Vulnerability Details

ETH Transfer to StabilityPool Reverts Due to Missing receive()/fallback() Function

Code Snippets:

In buyBackNFT():

payable(stabilityPool).transfer(price);

In endAuction():

payable(stabilityPool).transfer(winningBid);

The StabilityPool contract does not have a receive() or fallback() function to accept ETH. As a result, these transfers always revert.

Impact

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.

Tools used

manual review

Recommendations

Convert the ETH into crvUSD tokens then deposit them in LendingPool.sol and send the minted RTokens to the StabilityPool

Updates

Lead Judging Commences

inallhonesty Lead Judge about 2 months ago
Submission Judgement Published
Validated
Assigned finding tags:

StabilityPool misses receive/fallback breaking the integration with NFTLiquidator

inallhonesty Lead Judge about 2 months ago
Submission Judgement Published
Validated
Assigned finding tags:

StabilityPool misses receive/fallback breaking the integration with NFTLiquidator

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.