The mintSnowman function is an unprotected external function. This allows any user to mint an unlimited number of Snowman NFTs for free which completely bypasses the intended airdrop mechanism that requires staking Snow tokens and devaluing both the NFT and the ERC20 token
The intended behavior is for users to acquire Snow tokens and then use the SnowmanAirdrop contract to claim Snowman NFTs. The SnowmanAirdrop contract is the only one that should be authorized to call the mintSnowman function on the Snowman contract to distribute these NFTs to eligible stakers.
The problem is that the mintSnowman function in the Snowman.sol contract is declared as external without any access control modifiers. Which means any person or contract can call it directly to mint any number of NFTs to any address without meeting any of the protocol's requirements
Likelihood:
An attacker calls the public mintSnowman function on the deployed Snowman.sol contract
This exploit requires no special permissions or conditions, this is always callable by any external account since the contract was deployed.
Impact:
The core protocol utility, which involves users staking Snow tokens via the SnowmanAirdrop contract to receive NFTs, is rendered useless
The Snowman NFT is devalued because of its unlimited and free supply. This also devalues the Snow token, as its primary use case is no longer necessary.
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.