The RToken contract's burn function uses the unscaled amount instead of the scaled amount when burning tokens, resulting in an incorrect number of tokens being burned and potential loss of user funds.
The function calculates a scaled amount but ignores it, instead burning the raw amount. This means the number of RTokens burned doesn't account for the accumulated interest represented by the index.
Example:
User wants to burn equivalent of 100 underlying Tokens
Current index: 2.0 RAY
Should burn: 50 RTokens for 100 underlying tokens
Actually burns: 100 RTokens for 100 underlying tokens
HIGH - Users losing RTokens. This vulnerability results in:
Users losing more RTokens than they should when burning
Misalignment between RToken supply and underlying asset reserve
Use the scaled amount in the burn operation.
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.