The GaugeController's
voting mechanism allows users to specify weights up to WEIGHT_PRECISION (10000) for each gauge independently, without enforcing a total weight limit across all gauges. This enables users to amplify their voting power by assigning maximum weights to multiple gauges. I should also note that the variable `LastVoteTime` is not used.
In the vote() function, users can assign arbitrary weights to each gauge:
Since there's no check on the `LastVoteTime`, A user with voting power can:
Vote weight 10000 for Gauge A
Vote weight 10000 for Gauge B
Vote weight 10000 for Gauge C
This vulnerability allows Vote amplification by assigning maximum weight to multiple gauges, plus every user will be chosing the proper weight to maximize his voting power
Manual Review
Use the `LastVoteTime` and calculate the weight for each user in the contract
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.