The BaseGauge contract's reward distribution mechanism is vulnerable to a race condition where users can claim rewards multiple times before the reward state properly updates.
In BaseGauge.sol:
The issue exists because:
rewardPerTokenStored updates can be manipulated through rapid claims
No minimum interval enforced between reward updates
Reward rate changes don't force immediate reward state updates
Users can claim rewards multiple times in the same block
Reward calculations can be manipulated through timing
Potential double-claiming of rewards during rate updates
Add claim interval enforcement and synchronize updates:
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.