The claimRewards function in FeeCollector.sol contains a critical vulnerability in how it tracks user rewards. The issue arises from incorrect state updates, specifically where userRewards[user] is reset to totalDistributed, leading to incorrect reward calculations. This can Potentially set a user’s claimable rewards to zero for the next claim, resulting in lost earnings.
The issue arises because:
totalDistributed is a global accumulator for all rewards.
Setting userRewards[user] = totalDistributed doesn't accurately track individual historical claims.
lastClaimTime tracking is missing entirely
Potential double-claiming of rewards.
Incorrect reward calculations for users.
Loss of claim history tracking.
Possible economic damage to the protocol.
Manual code review
Static analysis
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.