User can claim unearned rewards by acquiring veRAAC tokens just before claiming, as reward calculation doesn't consider token holding duration.
In the FeeCollector contract, the _calculatePendingRewards function calculates rewards based only on current voting power without considering the duration of veRAAC token ownership.
Attack Scenario:
Attacker acquires 500 veRAAC right before claiming
New total voting power = 1500 veRAAC (1000 + 500)
Attacker's share calculation:
share = (1000 500) / 1500 = 333.33 RAAC
Attacker gets 333.33 RAAC despite just acquiring veRAAC
Attackers can exploit reward distribution by acquiring veRAAC tokens just before claiming to receive unearned rewards, leading to dilution of legitimate long-term holders' reward.
Manual Review
Implement time-weighted rewards or track historical voting power.
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.