User should only be able to mint NFTs as part of a controlled airdrop process
The mintSnowman() function in Snowman.sol has no access control modifiers, allowing any address to mint unlimited NFTs to any recipient address, completely bypassing the airdrop mechanism.
The mintSnowman() function should only be callable by authorized addresses (such as the airdrop contract) to maintain the intended distribution mechanism and NFT scarcity.
Likelihood:
The function is publicly accessible with no restrictions, making exploitation trivial for any user
The vulnerability is immediately discoverable through contract interface inspection
Impact:
Unlimited minting allows attackers to mint millions of NFTs at minimal gas cost
Bypasses all airdrop eligibility requirements and token staking mechanisms
Enables griefing attacks by forcing unwanted NFTs onto user addresses
Renders the entire airdrop system meaningless and could have economic impact
Attacker can mint unlimited NFTs, the below POC shows the attacker minting 100:
the fix would be to add a modifier on the function to enforce access control:
The mint function of the Snowman contract is unprotected. Hence, anyone can call it and mint NFTs without necessarily partaking in the airdrop.
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.