Currently, the delegateBoost
function in the BoostController
is designed to delegate boost from one user to a pool, but it lacks validation to see whether the address to be delegated to is a supported pool:
The boost should only be allowed to be delegated to supported pools. As any address can be passed as to
, two potential issues can happen here:
User delegates the funds to an untrusted entity and loses the funds or
User with X veTokens can create an infinite chain of delegations, i,e: A -> B -> C -> D -> E -> F.
Each step in the chain creates new boost power, when the original delegation expires, the chain remains active, which can lead to infinite boost multiplication.
ps: There is another issue here which is tracking the delegated amount, but this was sent in a different report.
Loss of funds for the user when the address is not from a supported pool.
Steal of boost rewards by creating a large chain of delegations.
Manual Review
Include the pool validation.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.