Anyone can call BoostController#updateUserBoost to let any user have boost
If user know the supported pool address, user can get boost by calling BoostController#updateUserBoost
There's no validation of userBoost > 0 and userBoost.delegateTo = pool. Even this function has no modifier.
As a result, anyone can have boost by calling this function without delegateBoost() calls.
Proof Of Code
Testcode is written in BoostController.test.js
user1 has no veRAACToken, but since updateUserBoost() is called, user1 has boostedAmount boost.
Boost inflation.
poolBoosts and userBoosts increase.
manual, hardhat
Add a validation of userBoost.delegateTo == pool and _calculateBoost()'s amount = oldBoost, modifier to prevent called by anyone.
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.