Function claimAllRewards() may be reverted if malicious uses transfer lots of claimed box.
Function claimAllRewards() will be used to claim all boxes's rewards. If there're lots of box, the claimAllRewards() may be reverted because of out of gas.
Malicious users can claim his box's rewards and then transfer this to the victim. And we can repeat transferring claimed box to the victim to inflat array rewardsOwned's length.
When the victim wants to claim all his rewards via transferReward, this function will be reverted because of out of gas.
Function claimAllRewards() may be reverted because of the long array. Users have to pay more gas to claim each box's rewards.
Manual
Add some check in transferReward, if this box has already claimed, we should not transfer this box.
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.