The protocol's liquidation mechanism is completely broken due to a fundamental design flaw in token flow. The StabilityPool requires crvUSD tokens for liquidations but has no mechanism to receive them, as all deposits are directed to the rToken contract instead.
In LendingPool deposit() function
In StabilityPool liquidateBorrower
Critical System Failure:
Liquidations cannot be executed
Protocol's risk management is non-functional
No way to handle defaulted positions
Economic Implications:
Bad debt cannot be cleared
Protocol becomes insolvent during market stress
User funds at risk
System Design:
Core mechanism broken
No fallback liquidation path
Protocol effectively unusable
Manual code review
Adjust the token flow to make sure that the StabilityPool has access to crvUSD, or completely revise the liquidation logic.
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.