in the Snowman.sol contract, the mintSnowman() function is declared external and lacks any access control. This means anyone can call this function to mint any number of Snowman NFTs to any address, bypassing the intended verification logic of the airdrop.
Likelihood:
This will occur as soon as an attacker identifies the publicly accessible mintSnowman() function.
No ownership of Snow tokens, Merkle proof, or signature is required to exploit.
Impact:
Any user can mint an unlimited number of NFTs at zero cost, undermining scarcity and trust.
The economic model designed around staking Snow and gated airdrops becomes obsolete.
Restrict the mintSnowman() function to only be callable by the SnowmanAirdrop contract:
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.