The delegateBoost
function checks the user's veToken balance to validate the delegation amount but fails to consider previously active delegations. This oversight enables users to delegate the same veToken balance multiple times to different addresses, exceeding their actual voting power or boost capacity.
Current check: userBalance < amount
ensures a single delegation does not exceed the user's veToken balance.
Missing check: No consideration of existing active delegations from the same user.
Result: A user with 100 veTokens can delegate 100 tokens to multiple addresses, surpassing their actual balance.
Users can amplify their influence or rewards beyond intended limits.
Boost distribution integrity is compromised.
Potential economic exploitation if boosts affect voting power, liquidity incentives, or rewards.
Manual code review.
Track total delegated amounts and ensure they do not exceed the user's balance:
Implement getTotalDelegated
to sum all active delegations:
This ensures users cannot delegate more than their available veToken balance.
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.