The team intended to allow only one claim per eligible wallet (or one claim per signature).
But Alice is claiming multiple times by reusing the signature and just re-funding her SNOW.
Even though she's paying ETH for SNOW, she’s bypassing the core rules of the airdrop:
A user should not be able to mint multiple NFTs just by refilling balance and reusing a signature.
Normal Behavior: Users should generate unique signatures for each claim transaction, staking their Snow tokens exactly once per signature to receive corresponding Snowman NFTs.
Issue: The contract lacks nonce-based replay protection in its EIP-712 signature scheme, allowing attackers to reuse valid signatures indefinitely. The vulnerability stems from calculating the signed amount
at call-time rather than signature-time, combined with missing nonce validation, enabling unlimited NFT minting with a single valid signature.
Risk
Likelihood:
Snow tokens can be easily reacquired through weekly farming or direct purchase, recreating identical balance conditions for signature reuse
Attack requires only transaction replay with the same parameters - no advanced cryptographic knowledge needed
Single valid signature can be exploited indefinitely across multiple claim cycles
Impact:
Infinite NFT minting using a single signature, completely bypassing the intended 1:1 token-to-NFT staking ratio
Severe economic damage to protocol as NFTs are minted without corresponding permanent token burns
Unfair advantage over legitimate users who generate new signatures for each claim
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.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.