In the claimRewards function, any one can call to function with input any addresss. The contract does not check that the input user address matches msg.sender . So, the function caller can input any address (example address A) and this address A will receive the reward without making a claim.
In the claimRewards function, just check user == address(0) without checking the additional condition user != msg.sender . So, any one can call to function with input any addresss.
Any one call can with input user = A_address, if A_address there is a reward in the contract. A_address will receive the reward without making a claim.
hacker can make claims for many addresses
manual
Add condition check user != msg.sender
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.