Core Contracts

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

Skewed Utilization Rate Calculation When Liquidity and Debt Are Both Zero

Summary

The calculateUtilizationRate function currently returns a 100% utilization rate if total liquidity is less than 1, regardless of the debt value. This results in an incorrect rate when both liquidity and debt are zero.

Vulnerability Details

In the function https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/libraries/pools/ReserveLibrary.sol#L303

if (totalLiquidity < 1) {
return WadRayMath.RAY; // 100% utilization if no liquidity
}
uint256 utilizationRate = totalDebt.rayDiv(totalLiquidity + totalDebt).toUint128();
return utilizationRate;

If both totalLiquidity and totalDebt are zero (a scenario likely during new lending pool), the function incorrectly returns 100% utilization instead of 0%, leading to artificially high calculated rates.

Impact

  • Incorrectly high utilization rate at initial launch may trigger excessively high borrow and debt rates.

  • Potential deterrence of early participants due to skewed interest pricing.

Tools Used

Manual Review

Recommendations

Modify calculateUtilizationRate to check for the case when both totalLiquidity and totalDebt are zero, returning 0% utilization in that scenario.

Updates

Lead Judging Commences

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

ReserveLibrary::calculateUtilizationRate returns 100% when both liquidity and debt are zero, causing artificially high interest rates at pool initialization

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

ReserveLibrary::calculateUtilizationRate returns 100% when both liquidity and debt are zero, causing artificially high interest rates at pool initialization

Support

FAQs

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