The DebtToken contract relies on _usageIndex and getNormalizedDebt() from the LendingPool to track debt growth over time. However, these values may not always be synchronized, leading to misaligned debt calculations.
If _usageIndex and getNormalizedDebt() diverge, users may experience incorrect interest accrual, affecting both borrowers and liquidators.
This issue can cause unexpected overcharges or undercharges in debt calculations, creating financial inconsistencies across the protocol.
In the DebtToken contract, different pieces of code rely on the _usageIndex and the value returned by ILendingPool(_reservePool).getNormalizedDebt() . For instance:
and
The _usageIndex may diverge from what getNormalizedDebt() returns, or be updated at different times, so users' scaled balances can become misaligned with the actual index used for interest accrual, leading to unexpected or incorrect interest calculations.
Incorrect Interest Calculations
Manual review
Use one single source of truth for debt scaling—either _usageIndex or getNormalizedDebt()
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.