Core Contracts

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

Liquidated NFTs will be stuck on `StabilityPool`

Vulnerability Details

When a liquidation finishes the NFTs as collateral are transfered to the StabilityPool. See here. After this is executed, then liquidateBorrower() is executed in StabilityPool but no transfers are done so the NFT remains in the pool, see here.

The problem is that the StabilityPool can't transfer those NFTs anywhere else. If you parse all the transfers and approvals the pool has none is related to the RAACNFT contract. Furthermore none of the inherited contracts have such functions either:

contract StabilityPool is IStabilityPool, Initializable, ReentrancyGuard, OwnableUpgradeable, PausableUpgradeable

Impact

Liquidated NFTs will be stuck in the StabilityPool. Fortunately, the StabilityPool is a contract that can be upgraded.

Recommendations

Add transfer liquidated NFTs functionality to the pool. Or set an approval on construction time to another address capable of managing the NFTs.

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.