When the StabilityPool
liquidates a borrower's position, all NFTs from the position are sent to the StabilityPool
. However, the StabilityPool
does not have a function to withdraw these NFTs, resulting in them being permanently stuck in the contract.
During the liquidation process, the StabilityPool
calls lendingPool.finalizeLiquidation(userAddress)
, which transfers the borrower's NFTs to the StabilityPool
. However, the StabilityPool
contract lacks a mechanism to withdraw these NFTs. As a result, any NFTs transferred to the StabilityPool
during liquidation cannot be recovered.
NFTs transferred to the StabilityPool
during liquidation become permanently stuck in the contract. This leads to a loss of assets for the protocol, as there is no way to retrieve these NFTs.
Manual review
To resolve this issue, add a function to the StabilityPool
contract that allows authorized parties (e.g., the owner or manager) to withdraw NFTs. This function should transfer the NFTs to a specified recipient address.
For example, implement the following function:
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.