In the BoostController::getBoostMultiplier function that results in all non-zero user boosts returning a fixed maximum multiplier (2.5×) regardless of actual configuration or user conditions. This flaw stems from an incorrect mathematical formula and the hardcoding of the MAX_BOOST constant, rendering dynamic boost adjustments ineffective and compromising core protocol mechanics.
BoostController.sol – getBoostMultiplier(address user, address pool) function.
The implemented formula erroneously computes the multiplier as:
Simplification Proof:
For any non-zero userBoost.amount:
This reduces the multiplier to always return 25000 basis points (2.5×) when userBoost.amount > 0, irrespective of the actual boost parameters or user-specific conditions.
getBoostMultiplier return incorrect boost multiplier
Manual Review
Compute the multiplier as a direct ratio of the boosted amount to the base amount:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.