MerkleAirdrop::claim function on an address that is on the reward lists.Any address not on the reward list can call MerkleAirdrop::claim. There is no check to see if the caller's address matches the one they pass in the parameters when calling.
An attacker can call a function from his address that is not whitelisted for receiving the reward and drain the entire balance of 100 USDC to the address that is. Thereby spoiling the concept of the entire protocol, which should receive the reward of four different addresses. The user who will call the function will not understand why I will get an error.
We create the address of the attacker from which the claim will be triggered.
We give him funds to pay the commission.
We trigger the claim from the attacker by inserting the address of the user who has the right to use it.
The attacker, having funds to pay the commission, can receive funds for them for everyone.
No caller validation, need to check if caller matches address passed in function parameters.
Add error for better user experience.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.