The MerkleAirdrop::claim
function lacks a check to prevent replay attacks. This vulnerability allows an airdrop receiver to claim multiple times, potentially draining the contract.
This issue enables a single receiver to steal all the funds allocated for the airdrop.
Proof of Concept:
To demonstrate the vulnerability, add the following code to the existing MerkleAirdropTest
contract:
foundry
In MerkleAirdrop
, implement a mapping to track addresses that have already claimed the airdrop to prevent replay attacks.
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.