Core Contracts

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

Liquidated NFTs will be stuck at StabilityPool

Summary

When a borrower's position is liquidated, their deposited NFTs will be transferred to StabilityPool. However, there is no mechanism to retrieve these NFTs from StabilityPool.

Vulnerability Details

When a borrower's position is liquidated, all of their deposited NFTs are transferred to StabilityPool:

// Transfer NFTs to Stability Poolk
for (uint256 i = 0; i < user.nftTokenIds.length; i++) {
uint256 tokenId = user.nftTokenIds[i];
user.depositedNFTs[tokenId] = false;
@> raacNFT.transferFrom(address(this), stabilityPool, tokenId); // @audit stabilityPool doesn't have token rescue mechanism
}

However, StabilityPool does not have token rescue mechanism, or NFT liquidation mechanism.

Transferred NFTs will be stuck at StabilityPool forever.

Similarly, other assets such as native token, ERC20 tokens cannot be rescued from StabilityPool.

For example, managers need to transfer crvUSD token to liquidate a position. All excess crvUSD token will be stuck at StabilityPool.

Impact

  • Liquidated NFTs will be stuck at StabilityPool

  • Other assets like crvUSD will be stuck at StabilityPool

Tools Used

Manual Review

Recommendations

Implement a token rescue mechanism in StabilityPool.

Updates

Lead Judging Commences

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

Liquidated RAACNFTs are sent to the StabilityPool by LendingPool::finalizeLiquidation where they get stuck

Support

FAQs

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