Users can delegate their boost to another address even when the lock duration of their veToken has expired and the tokens can be withdrawn. This results in a delegation occurring when no veTokens are actually locked.
In BoostController.sol::delegateBoost, users must specify the duration for which they want their boosts to be delegated to another address. Additionally, the delegated amount cannot exceed the user's veToken balance.
As shown above, delegateBoost only verifies the user's current veToken balance but does not check whether an active lock exists for the user. This allows users with expired locks to call delegateBoost and then immediately call withdraw and withdraw their RAACTokens, effectively delegating boosts without actually maintaining any active locks in veRAACToken.sol.
Users can delegate boosts without having any active veToken locks, which can lead to unintended or fraudulent boost allocations.
Manual Review
Check the lock duration of the veToken before allowing users to delegate. Ensure that the delegation duration does not exceed the remaining lock duration of the veToken.
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.