The RToken contract's burn function allows the liquidity index to remain unchanged when it should increase. This creates an opportunity for interest-free loans since users can burn tokens without paying accumulated interest whihc directly undermines the protocol's interest accrual mechanism.
The function accepts an index parameter but doesn't enforce that it must be higher than the current liquidity index. This means:
A user can deposit assets and receive RTokens
Later burn those RTokens using the same index value from deposit
Effectively avoid paying any accrued interest
The proper behavior should follow this pattern:
Interest accrual serves as the foundation of the entire RAAC system, like gravity in physics, and the RToken contract has an interesting oversight that allows users to sidestep this fundamental law. Let me walk you through how this happens in the burn function's handling of the liquidity index. Think of the liquidity index as a measure of accumulated interest over time, it should only go up, never down or stay flat during burns. However, it currently accepts any index value without validation, see the code:
A malicious attacker can deposit 1000 RAAC when the liquidityIndex is 1.0, wait for interest to accrue until the index reaches 1.2, then burn her tokens using her original 1.0 index. The protocol fails to capture 20% worth of interest that should have accrued.
Because of the vulnerabiity you see how a malicious attacker can deposit assets, wait for interest to accrue, then burn their RTokens using the same index from when they deposited. The protocol thinks "no interest has accrued" even though time has passed.
This vulnerability resembles the Compound v1 interest rate manipulation issues, but with a major difference, instead of manipulating rates directly, it bypasses interest accrual entirely through index reuse.
This allows users to circumvent the protocol's interest mechanism. For lending protocols, accurate interest accrual is fundamental without it, the protocol cannot properly compensate lenders or maintain economic stability. Without proper interest accrual, the protocol cannot maintain stable lending markets or fairly compensate lenders for their capital. The time value of money must be respected for the system to function properly.
manual
Consider adding index validation in the burn function
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.