Snowman.mintSnowman is external with no access control, so anyone can mint unlimited Snowman NFTs for free, completely bypassing the airdrop's Merkle + signature gating.
Snowman.mintSnowman(address receiver, string memory snowmanUri, uint256 amount) is external with no access control (no onlyOwner, no check that the caller is the SnowmanAirdrop contract).
Likelihood: High
Impact: Any address can mint any number of Snowman NFTs to itself at zero cost. This completely bypasses the Snow token earn/buy mechanics and the Merkle-proof + signature gating of the airdrop. The NFT supply is infinitely inflatable, so the airdrop and any value attached to the NFTs are meaningless.
Restrict mintSnowman so only the SnowmanAirdrop contract (or the owner) can call it, e.g. store the airdrop address and require msg.sender == i_airdrop.
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.