Normal Behavior
The claim() function is expected to allow a user to claim their own airdrop allocation securely and independently.
Issue
The contract allows any caller to submit a claim for any account, as long as they provide a valid Merkle proof.
There is no validation that:
This allows third parties to trigger claims on behalf of others.
Likelihood:
Anyone with access to a valid Merkle proof can call claim()
No restriction ensures msg.sender matches the claimant
Impact:
Attackers can front-run or force claims for other users
Users lose control over when and how they claim their airdrop
Can lead to unexpected fee payments or disrupted UX
The attacker uses a valid proof belonging to another user
Calls claim() using victim’s address
Contract verifies proof and sends tokens to victim
Victim has no control over when the claim happens
Adds a check ensuring only the intended recipient can call claim()
Prevents third-party interference
Restores user control over claiming process
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.