The liquidateBorrower
function in the StabilityPool contract incorrectly calculates the user's debt by applying normalization twice, potentially leading to inflated debt values and failed liquidations.
Inflated Debt Values:
Debt amounts are incorrectly multiplied by the normalization factor
Users may be over-liquidated
Protocol may attempt to liquidate more than the actual debt
Failed Liquidations:
Liquidations may fail due to insufficient balance checks
Protocol's stability mechanism is compromised
Potential blocking of legitimate liquidations
Incorrect Event Emissions:
Events record wrong liquidation amounts
Affects off-chain monitoring and analytics
Historical data becomes unreliable
Manual Review
Remove the second normalization and use the debt value directly from getUserDebt()
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.