The claimSnowman() function allows minting a Snowman NFT for every 1e18 fraction of Snow tokens held, creating a critical vulnerability.
Users with even tiny Snow balances (0.0000000001 tokens) may be able to trigger NFT minting. However, the linear minting loop (i_snowman.mintSnowman()) will exceed block gas limits for slightly bigger holdings. Legitimate claims become impossible due to transaction reverts, and the contract effectively bricks itself as claims pile up.
No Thresholds will enable dust amounts (1 wei) to mint
Each _mint costs ~50k gas → 100 tokens would require 5M gas (exceeding limits)
Likelihood: HIGH
It will happen at any moment for users who have any amount over 1e5.
The MerkleTree validation blocks users from claiming in smaller amounts
Impact: HIGH
Users will be blocked from claiming Snowmans
Implement a minting threshold. For example:
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.