Normal Behavior: Each eligible address should only be able to claim their Snowman NFT once using a valid Merkle proof and signature.
Issue: The contract does not check if a user has already claimed. The s_hasClaimedSnowman
mapping is updated only after state changes and is never read before execution. This allows any valid claimant to repeatedly call claimSnowman()
and mint multiple NFTs.
Likelihood:
The Merkle tree and signature are static; users can re-submit them any time.
There's no guard preventing repeated calls to the claim function
Impact:
Any eligible user can infinitely repeat the claim and mint function.
Token distribution becomes exploitable, leading to over-minting and broken economics.
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.
The contest is complete and the rewards are being distributed.