The SnowmanAirdrop contract uses ECDSA signature validation to authorize NFT claims through the _isValidSignature() function
The signature validation lacks replay protection mechanisms such as nonce tracking or signature hash recording, allowing attackers to reuse valid signatures multiple times across different transactions
Likelihood:
Valid signatures remain usable indefinitely after the first claim transaction completes
Attackers intercept valid signature data from blockchain transaction history or mempool monitoring
Impact:
Attackers replay valid signatures to claim multiple NFTs beyond their entitled allocation
The airdrop distribution becomes unfair as malicious actors drain the NFT pool through signature replay attacks
The attack exploits the lack of signature replay protection by reusing valid signatures from previous transactions. An attacker monitors the blockchain for successful claim transactions, extracts the signature parameters, and replays them to claim additional NFTs.
Attack Flow:
Legitimate user (Alice) claims their airdrop NFT using signature (v, r, s)
Transaction succeeds and is recorded on the blockchain
Attacker monitors Etherscan or blockchain APIs for claimSnowman transactions
Attacker extracts signature parameters (v, r, s) from Alice's transaction calldata
Attacker deploys SignatureReplayAttack contract
Attacker calls replayAttack() with Alice's credentials
The contract calls claimSnowman() three times with the same signature
All three calls succeed because the signature is never invalidated
Attacker receives 3 NFTs using Alice's signature
Expected Result: The attacker successfully replays one signature to claim multiple NFTs. If 100 users have claimed their NFTs, an attacker can extract all 100 signatures and claim 100+ additional NFTs, doubling the total supply and depriving legitimate future claimants.
Add a mapping to track used signatures by their hash. Check if a signature has been used before processing the claim, and mark it as used after successful validation. This prevents signature replay attacks by ensuring each signature can only be used once.
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.