The GaugeController::vote
function fails to verify if a gauge is currently active before accepting votes, allowing users to allocate voting weight to paused or deactivated gauges. This violates the protocol's intended governance controls and could lead to distorted reward distributions.
The function checks gauge existence via isGauge()
(which only verifies lastUpdateTime != 0) Fails to check the isActive
status flag that indicates operational status
we have a struct that show Whether gauge is currently active or not but if auser want to vote to a gauge there is no check if this guage is active or not.
Attackers can inflate weights of deactivated gauges
If reactivated later, these gauges immediately receive disproportionate rewards
Voting power becomes diluted across inactive/active gauges
Rewards calculations via getTotalWeight() become inaccurate during gauge state transitions
Emergency shutdowns lose effectiveness as gauge weights remain mutable
Manual review
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.