Core Contracts

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

Incorrect Boost Parameter Initialization Breaks Reward Claims

Summary

In BaseGauge.sol, boost parameters are initialized with minBoost (1e18) greater than maxBoost (25000), causing all reward claims to fail due to the InvalidBoostBounds check in BoostCalculator.

Vulnerability Details

In BaseGauge.sol constructor, we initial these values

/// @notice Maximum boost multiplier (2.5x)
uint256 public constant MAX_BOOST = 25000; // 2.5x maximum boost
/// @notice Minimum boost multiplier (1.0x)
uint256 public constant MIN_BOOST = 10000; // 1.0x minimum boost

The call path of a user that will fail:

getReward() -> earned() -> getUserWeight() -> _applyBoost() -> calculateBoost()

and in calculateBoost we have this

uint256 boostRange = params.maxBoost - params.minBoost; // Will underflow
// 25000 - 1e18 underflows

Impact

  1. All boost calculations will revert due to underflow

  2. Users cannot claim rewards

Tools Used

Manual review

Recommendations

Correct the boost parameter

boostState.maxBoost = 25000; // 2.5x
boostState.minBoost = 10000; // 1.0x
Updates

Lead Judging Commences

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

boostState.minBoost is set to 1e18

Support

FAQs

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