Core Contracts

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

Incorrect calculation of utilization rate

Summary

RAACMinter.getUtilizationRate returns a incorrect utilization rate.

Vulnerability Details

Utilization rate should be calulated based on total borrow and total deposit. But here utilization rate is calculated based on reserve.usageIndex(global debit rate) and balance of R token in stablity pool. usageIndex is in Ray(in e27) and R token balance(in e18) so (totalBorrowed * 100) / totalDeposits is return very large number meaning it exeed the 100% .

function getUtilizationRate() internal view returns (uint256) {
uint256 totalBorrowed = lendingPool.getNormalizedDebt();
uint256 totalDeposits = stabilityPool.getTotalDeposits();
if (totalDeposits == 0) return 0;
return (totalBorrowed * 100) / totalDeposits;
}

Impact

Incorrect calulcation of utilization rate caused incorrect emission rate of raac token. Users able to claim more raac token rewards even if the correct utilization rate is low.

Tools Used

Manual Review

Recommendations

Calculate utilization rate based on total borrow and total deposit.

Updates

Lead Judging Commences

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

RAACMinter::getUtilizationRate incorrectly mixes stability pool deposits with lending pool debt index instead of using proper lending pool metrics

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

RAACMinter::getUtilizationRate incorrectly mixes stability pool deposits with lending pool debt index instead of using proper lending pool metrics

Support

FAQs

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