Steadefi

Steadefi
DeFiHardhatFoundryOracle
35,000 USDC
View results
Submission Details
Severity: high
Invalid

Divide by zero error in debt ratio calculation

Summary

The debtRatio function divides debt by asset value, but assets may exceed debt, resulting in a divide by zero.

Vulnerability Details

DebtRatio calculates the debt percentage by taking the total debt value and dividing by the asset value. However, it is possible for assets to be greater than debt in some situations, such as when the portfolio has gain. This would cause a divide by zero.

function debtRatio(GMXTypes.Store storage self) public view returns (uint256) {
(uint256 _tokenADebtValue, uint256 _tokenBDebtValue) = debtValue(self);
if (assetValue(self) == 0) return 0;
return (_tokenADebtValue + _tokenBDebtValue) * SAFE_MULTIPLIER / assetValue(self);
}

Impact

An incorrect debt ratio of infinity could seriously misrepresent the portfolio risk profile and mislead users or liquidation mechanisms.

Tools Used

Manual Review

Recommendations

Validate divisor (asset value) is always greater than or equal to dividend (debt value) before dividing:

Updates

Lead Judging Commences

hans Lead Judge almost 2 years ago
Submission Judgement Published
Invalidated
Reason: Lack of quality

Support

FAQs

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