In BoostController#updateUserBoost(), the function incorrectly calls _calculateBoost(user, pool, 10000), using a fixed amount of 10,000 instead of the user’s actual previous boost amount. This can lead to arbitrary changes in user boost calculations, allowing users to gain or lose boost unintentionally.
_calculateBoost(user, pool, amount) returns amount * (boostState.minBoost + (boostState.maxBoost - boostState.minBoost) * userBalance / totalSupply)
So after updateUserBoost(), boost amount will be fixed. Since this function has no modifier, anyone can make other's boost amount fixed based on 10000.
For example, user's boost is only 1000 due to his balance is only 1000 and after updateUserBoost(), he will receive 10000 greater boost amount. In contrast 100000 boost degrade to 10000 boost.
Logic is broken and delegateBoost()'s amount argument is needless.
Incorrect calculations cause unintended boost changes.
manual
Use oldBoost Instead of a Fixed 10000
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.