There's a ulnerability in the BoostController contract that allows an attacker to fraudulently increase their boost amount without holding any veTokens. The exploit takes advantage of improper validation in the BoostController::updateUserBoost function, leading to an unintended boost allocation.
The function BoostController::_calculateBoost(user, pool, 10000) does not verify whether the user actually holds any veTokens before assigning a new boost. This allows an attacker to gain a fraudulent boost amount of 10000 even with zero veTokens.
Unauthorized increase in user boost values.
Inflation of pool boost values leading to unfair rewards distribution.
Potential financial loss due to an attacker receiving undeserved incentives.
Attacker initializes with zero veTokens.
Calls BoostContract::updateUserBoost(attacker, pool);
The function assigns an unjustified boost of 10000.
The attacker's boost amount and the pool's total boost are incorrectly updated.
Manual review
Proper veToken Balance Check: Before updating the user's boost, ensure that BoostController::_calculateBoost correctly verifies the user's veToken holdings.
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.