Normally, each user is only allowed to claim the Snowman NFT once using a valid Merkle proof, ECDSA signature, and sufficient Snow token balance.
However, the claimSnowman
function does not check whether the caller has already claimed. As a result, any eligible user can repeatedly invoke the function and mint multiple NFTs.
Likelihood:
This will happen whenever an eligible user (with a correct proof and signature) repeatedly calls the claimSnowman
function.
Impact:
A single user can mint unlimited Snowman NFTs by calling the function multiple times.
It could result in total airdrop over-distribution and damage project tokenomics and fairness.
Add the following check:
also define the custom error error AlreadyClaimed(); to match existing style.
The claim function of the Snowman Airdrop contract doesn't check that a recipient has already claimed a Snowman. This poses no significant risk as is as farming period must have been long concluded before snapshot, creation of merkle script, and finally claiming.
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.