Medium Impact
Medium Likelihood
Snowman.mintSnowman is expected to mint a batch of NFTs corresponding to the claimer's Snow balance.
The function iterates amount times in a single transaction, calling _safeMint on each iteration. The amount value comes from i_snow.balanceOf(receiver) in SnowmanAirdrop.claimSnowman. A user who accumulates a large Snow balance would trigger a proportionally large loop. At extreme balances the transaction exceeds the block gas limit and permanently reverts, making the claim impossible.
Likelihood:
Any user who buys or earns more Snow than the safe loop limit triggers this.
Since mintSnowman has no cap on amount, the problem scales with Snow supply.
Impact:
Legitimate claimers with large Snow balances are permanently denied their Snowman NFTs due to OOG.
A malicious user can transfer large amounts of Snow to a target to intentionally brick their claim.
A better long-term fix is to mint exactly one NFT per claim, or use a pull-pattern where claimers call mintBatch in multiple transactions.
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.