The LendingPool contract transfers liquidated users' NFTs to the StabilityPool during liquidation, but the StabilityPool contract lacks any functionality to manage, transfer, or withdraw these NFTs, resulting in permanent lockup of valuable house NFTs in the StabilityPool contract.
Let's analyze the relevant code:
In LendingPool.sol, during finalizeLiquidation():
This code transfers all NFTs from liquidated positions to the StabilityPool address. However, examining the StabilityPool.sol contract reveals:
No functions to manage received NFTs
No administrative functions to rescue or redistribute NFTs
No logic to auction or handle received NFTs from liquidations
No integration with RAACNFT contract despite receiving NFTs
Additionaly is also no implementation of NFT receiving functions (no implentation of onERC721Received function)
This creates a critical issue because:
Valuable house NFTs get permanently locked in the StabilityPool contract
There's no mechanism to redistribute these NFTs to DEToken holders
The protocol loses the ability to recover value from liquidated collateral
The economic model breaks as locked NFTs can't be recycled back into the system
The issue is particularly severe because house NFTs represent real estate value, and their permanent lockup removes significant value from the protocol's ecosystem.
Alice deposits an NFT (tokenId: 1) in LendingPool and borrows assets
Alice's position becomes unhealthy and gets marked for liquidation
Liquidation grace period passes
StabilityPool calls finalizeLiquidation() on LendingPool
NFT with tokenId 1 gets transferred to StabilityPool
NFT is now permanently locked as StabilityPool has no functions to manage or transfer it
Permanent loss of valuable house NFTs during liquidations
Breaking of protocol's economic model
Loss of collateral value that should be redistributed to stability providers
Reduced protocol efficiency as locked NFTs can't re-enter the system
Manual review
Add NFT management functionality to StabilityPool. The code below is just some rough ideas on what you could do.
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.