contracts/core/tokens/RToken.sol
During the transfer of rToken using both transfer and transferFrom functions, the amount is scaled by the liquidity index calling the transfer/transferFrom of the parent contract using the scaled amount.
However, before the actual transfer, the _update function is called, in this case the _update function is overridden and the passed-in amount is scaled again before the super._update is finally called, Hence across the entire execution flow, scaling is performed twice.
This does not conform to aave’s implementation of the Atoken as tokens are only scaled once during transfers, this specification violation can introduce errors during transfers especially for users or third party integrations that assume the token complies with aave's token design.
Manual review
Remove the scaling logic within the transfer/transferFrom methods as it is already contained within the _update function which will automatically be executed during transfers
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.