The claim
function in MerkleAirdrop.sol
allows a user to collect their airdrop. However, it doesn't account for whether a user has already claimed their airdrop. This allows any user with a valid proof to claim multiple times and steal all the remaining funds in the contract.
Since the account
is specified by the sender, anyone can drain the contract by sending all funds to any valid user in the Merkle root tree.
Likelyhood: High
Any user (sending to an airdrop user), at any time.
Impact: High
All funds can be stolen.
Create a mapping
to keep track of users' claims and prevent any user to claim more than once.
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.