In BoostController.sol
, the workingSupply
value in updateUserBoost()
is directly overwritten with a single user's boost value instead of aggregating the boosts of all users in the pool. This causes incorrect gauge weights and reward distribution calculations.
The updateUserBoost()
function overwrites the pool's workingSupply
with a single user's boost:
The workingSupply
is used by the GaugeController to determine gauge weights and reward distribution. By setting it to a single user's boost value instead of the sum of all users' boosts, the pool's weight becomes severely undervalued.
Incorrect gauge weights leading to unfair reward distribution
Only the last user to update their boost affects the pool's weight
Users lose entitled rewards as their boosts are ignored
Potential for manipulation by timing boost updates
Protocol incentive mechanism becomes dysfunctional
Manual Review
Update the workingSupply
calculation to aggregate all users' boosts:
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.