The _repay
function burns an incorrect amount of DebtTokens, allowing users to repay less than owed while burning all debt, leading to collateral theft.
_repay
passes the underlying asset amount
directly to DebtToken.burn
, but DebtTokens expect a scaled balance. This underestimates the debt to burn, enabling users to repay only a portion but have their entire debt forgiven.
Users can repay 0 debt while burning their entire DebtToken balance, allowing them to keep their collateral without repaying funds. Critical exploit risk.
Slither: Detects parameter mismatches between amount
and scaled balance calculations.
Mythril: Flags unexpected state changes in DebtToken
interactions.
Convert the amount
to a scaled value using reserve.usageIndex
before burning.
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.