The finalizeLiquidation() function transfers crvUSD from the Stability Pool without checking its balance, risking reversion after NFT transfers. This medium-impact, medium-likelihood issue could leave debt uncleared and collateral lost, causing protocol losses.
The function uses SafeERC20.safeTransferFrom() without verifying funds. Example:
User has 1000 crvUSD debt, 2 NFTs (1200 crvUSD).
Stability Pool has 500 crvUSD.
NFTs transfer, but 1000 crvUSD transfer fails, leaving 1000 crvUSD debt and a 700 crvUSD net loss.
This disrupts liquidation integrity.
The protocol could lose value (e.g., 700 crvUSD per incident), a medium-impact financial hit. The medium likelihood reflects potential Stability Pool depletion during high liquidation volume, threatening solvency.
Testing Frameworks: Hardhat to simulate low-balance liquidations.
Add a balance check:
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.