User rewards are incorrectly reset in claim rewards function which can cause loss of rewards for the user.
Following is claim rewards function
Suppose initally 100 tokens are distributed and user voting power = 50 and total voting power = 200
So the user rewards will be 100*50/200 = 25 tokens.
User claims these 25 tokens.
Now userRewards[user] will be set to total distributed i.e = 100
Now suppose 100 more tokens are distributed due to which totalDistributed = 200
Now the user voting power left = 40 and total voting power is still 200
So now the user should receive 100*(40/200) = 20 more tokens
Lets see how share value is calcualted now
share = 200*40/200 = 40
As initially userRewards[user] were set to 100
Hence share(40) will be less than userRewards[user] (100) hence pending reward will be zero and claim function will revert.Hence loss of rewards.
User doesn't receive their legitimate rewards which causes loss to them.
Manual
Redesign how userRewards[user] needs to be set for fair and accurate calculation of the rewards.
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.