Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: medium
Valid

Incorrect Return Value Sequence in RToken's Burn Function

Summary

The RToken contract's burn function returns values in an incorrect sequence compared to its expected return values. This mismatch affects the LendingPool contract which calls this function, potentially leading to incorrect accounting and state management.

Vulnerability Details

LendingPool::withdraw --> ReserveLibrary.withdraw--> RToken.burn()

LendingPool & ReserveLibrary expect amountScaled but instead recieve amount, which is higher than than amountScaled.

/* @return A tuple containing:
* - uint256: The amount of scaled tokens burned
* - uint256: The new total supply after burning
* - uint256: The amount of underlying asset transferred
*/
function burn(
address from,
address receiverOfUnderlying,
uint256 amount,
uint256 index
) external override onlyReservePool returns (uint256, uint256, uint256) {
// ...
return (amount, totalSupply(), amount); // @audit incorrect sequence
}

Impact

HIGH - This incorrect return sequence leads to:

  1. The LendingPool receives amount when it expects amountScaled

  2. This causes incorrect accounting in the protocol as:

    • Scaled amounts are used for internal accounting

    • Wrong values are emitted during events

    • User balances may be incorrectly updated

Tools Used

Recommendations

Modify the return tuple to right sequence

return (amountScaled, totalSupply(), amount);

Updates

Lead Judging Commences

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Validated
Assigned finding tags:

RToken::burn returns incorrect underlying asset amount (amount instead of amountScaled), leading to wrong interest rate calculations

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Validated
Assigned finding tags:

RToken::burn returns incorrect underlying asset amount (amount instead of amountScaled), leading to wrong interest rate calculations

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.