Snowman::mintSnowman()
Does Not Control Caller Allowing Anyone To Mint Arbitrary Number of NFTs To ThemselvesSnowman NFTs should only be earned through the airdrop.
Snowman::mintSnowman()
can be exploited by anyone to mint Snowman NFTs to themselves as the function is not protected by any modifier
Likelihood: High
It is very simple for anyone to call this function directly at any point of time without going throught the airdrop
Impact: High
Since anyone can call this function with any arbitrary number of NFTs to be minted to themselves, the value of the NFT has basically become worthless
The following code proves that any address can mint any number of NFTs directly to themselves.
The most flexible solution would be for the contract to inherit from OpenZeppelin's AccessControl to allow the owner of the contract to whitelist addresses that can call the mintSnowman()
function.
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.