Core Contracts

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

BoostController::getBoostMultiplier will always return MAX_BOOST

Summary

The BoostController's getBoostMultiplier function will always return MAX_BOOST instead of the user's actual boost.

Proof of concept

Let's say that the function is called for a delegation with amount 1e18.

  • baseAmount = 1e18* 10000/25000 = 0.4e18

  • function will return 1e18*10000/0.4e18 = 25000, i.e. the MAX_BOOST

Impact

No impact at the moment because the function is not currently being used elsewhere in the codebase but presumably this is because the codebase is not ready to be deployed in production.

If an external contract, such as a pool, calls this function to calculate what multiplier should be allocated to the user, it will receive wrong information and overinflate user rewards.

Tools Used

Manual Review

Recommendations

Use the logic of the _calculateBoost function to calculate the true multiplier.

Updates

Lead Judging Commences

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

BoostController::getBoostMultiplier always returns MAX_BOOST for any non-zero boost due to mathematical calculation error, defeating the incentive mechanism

Support

FAQs

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