liquidateBorrower
function in the StabilityPool contract allows the stability pool to handle liquidations in the lending pool in case no one liquidated the position before.
When the stability pool takes care of liquidation, it ultimately calls finalizeLiquidation
function in the lending pool, with the following lines of code executed:
This means the RAACNFTs that are liquidated are transferred from the lending pool to the stability pool.
The problem arises because the stability pool doesn't include any mechanism to transfer such NFTs, leading to these NFTs being stuck forever in the contract.
The impact of this vulnerability is high as it leads to systematic lock of RAAC NFTs in the stability pool contract during liquidations that are executed by the stability pool through liquidateBorrower
.
Manual review
Make sure to implement a feature in the stability pool contract that allows to transfer RAAC NFTs from the stability pool contract to another address.
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.