The Snowman NFT is supposed to be minted only when the receiver has enough Snow tokens and calls into the SnowmanAirdrop contract
The function mintSnowman
has no access control modifier or any checks that prevents anybody from minting Snowman NFTs
Likelihood:
HIGH as anybody can call the function and the cost is just that of an NFT minting
Impact:
HIGH as it completely breaks the whole business model of the contracts
The actual test of the Snowman contract already showcases the problem, as there is no vm.prank
used here. However a quick modification to test that not only the owner can call the function would be:
Add a modifier that allows only the right account to call the minting 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.