The GaugeController implements a fixed emission rate system where each gauge type (RWA and RAAC) has predetermined token emission rates. While individual gauges have proper caps, the protocol lacks a global emission control mechanism, allowing unlimited total emissions when multiple gauges are active.
The root cause of the vulnerability lies in the GaugeController's emission calculation and distribution logic:\
Reward Distribution Logic:
Notice anyone can call distributeRewardsto assign rewards to any active gauge.
The vulnerability exists because:
Each gauge type has a fixed emission rate that doesn't scale with the number of active gauges.
Every active gauge can receive rewards up to their individual cap in each period.
The emission rates are hardcoded and cannot be adjusted based on market conditions or protocol state.
Anyone can call distributeRewards and distribute the hardcoded amount of rewards for all active gauges until the emission for that period is reached.
With N active gauges, the protocol could emit up to N * (fixed_rate) tokens per period
Fixed rates ignore market conditions and total token supply, potentially leading to severe inflation
Each new gauge can claim the full emission rate
Manual Review
Implement protocol-wide emission caps for each period
Replace fixed emission rates with governance-controlled parameters
Scale emission rates based on the number of active gauges
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.