In a standard NFT project, when a user mints or claims an NFT, the contract should associate that tokenId with specific metadata (URI). When tokenURI() is called, it should return a JSON string containing a valid link to an image (IPFS/Arweave/HTTP) so marketplaces like OpenSea can display the asset correctly
The Snowman contract contains a mapping s_tokenIdToUri intended to store image links. However, there is no logic within the mintSnowman function to populate this mapping, nor is there a public setter function. Consequently, every minted NFT points to an uninitialized (empty) string in the s_tokenIdToUri mapping
Likelihood:
The vulnerability is embedded in the core minting logic. Every single NFT minted through the SnowmanAirdrop or directly via mintSnowman will be affected.
Since there is no administrative function to update the metadata post-minting, the state of the broken metadata is permanent unless the contract is redeployed.
Impact:
All minted assets are "Ghost NFTs" with no visual representation. This renders the collection useless for display on marketplaces and significantly devalues the assets for holders.
The integrity of the project is compromised as the core promise of providing a "Snowman NFT" is not fulfilled due to missing visual data.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.