In the BoostController.sol there are 2 ways to update the userBoosts[user][pool].amount,
1. calling the delegateBoost function
2.Calling the updateUserBoost function
The bug is that both these functions update the value differently, with a scaling difference of 1e18 to 1e4
In the delegateBoost function the userBoost.amount is updated as the amount, which can reach a maximum of the users veRAACToken balance (this is of the order 1e18 since the decimals of the token is 18).
In the updateUserBoost function the variable is updated as the output of the calculateBoost function, but this function returns boost*1e4, (basically a value in between the boost range).
This can be easily verified by checking the last line of the _calculateBoost function which limits the return value to the MAXBOOST_AMOUNT
Note: here the amount = 1e4 (this is the value supplied by the updateUserBoost function
User can inflate his userBoost.amount value
manual review
ensure both the updations are similar
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.