The mintSnowman
function performs a for loop that mints one NFT per iteration, based on the provided amount.
This loop is unbounded, and if the amount
is too large (e.g., 8001+), the transaction exceeds the block gas limit and reverts, preventing users from claiming their NFTs.
Likelihood:
Since token accumulation is a core part of the protocol’s airdrop design, high balances are expected and realistic to encounter this issue.
Impact:
High balance users (=8001 + snow ) are permanently unable to claim their NFTs due to out-of-gas limit reverts.
Attempting to mint a large number of NFTs (e.g., 8001+) leads to an out-of-gas revert due to block gas limits.
This becomes a denial-of-service vector for users with high Snow token balances, especially in the airdrop claim flow where mintSnowman() is called after tokens are transferred to the contract.
Restrict the maximum number of NFTs that can be minted in a single call by adding a reasonable upper bound to the amount
parameter in mintSnowman()
.
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.