RToken's balance update can be bypassed when minting or burning tokens without properly updating the liquidity index. This allows users to manipulate their token balances without the corresponding interest accrual, breaking the economic model of the lending protocol, because any balance changes must be accompanied by a liquidity index update, because the RToken.sol contract allows minting and burning operations to proceed with a stale liquidity index.
In the normal flow, the LendingPool should update the index before any balance changes, but there's no strict enforcement of this sequence.
RAAC bridges real estate and DeFi by tokenizing property into on-chain assets, enabling lending, borrowing, and trading through dual-gauge system. The RToken contract manages interest-bearing positions, similar to how traditional banks track growing savings deposits. However, the interest accrual mechanism allows users to bypass interest payments entirely, threatening the protocol's economic foundation. This means users can:
Mint tokens using old (lower) indices → Get more tokens than they should
Burn tokens using old indices → Repay less than they actually owe
This is what happened, the RToken contract tracks user balances that should automatically adjust with interest rates, similar to how a savings account grows over time. The liquidity index acts as our interest multiplier when it increases from 1.0 to 1.1, everyone's balances should grow by 10%.
Think of index as an interest multiplier (like 1.1 for 10% interest)
amountScaled represents the base amount without interest
The vulnerability occurs because an attacker can provide an old, lower index to get more tokens than they should
Missing validation: index should equal getLiquidityIndex() to prevent manipulation
This vulnerability allows borrowers to mint tokens at old interest rates and repay loans using outdated indices. In concrete terms, if the protocol has accumulated 10% interest, an attacker could borrow 1000 RTokens but only repay 909 tokens worth of value, a direct 91 token loss to lenders.
foundry
One line of validation prevents the entire interest-free loan exploit while preserving the contract's core functionality.
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.