The smart contract exposes a vulnerability by using the _mint
function directly instead of the safeMint
function in the WeatherNFT
method. This issue can result in unsafe minting, potentially causing problems such as tokens being minted to invalid addresses or incompatible contracts.
This does not check if the to address is a smart contract that supports receiving NFTs. If the recipient is a contract and does not implement onERC721Received(), the NFT will be permanently stuck.
The NFT can be locked in an unusable state if sent to an incompatible smart contract. This leads to loss of access for users and potential financial impact if the NFT holds value.
The `fulfillMintRequest` function is external and anyone can call it. If the protocol uses `_safeMint` instead of `_mint`, this introduces a reentrancy risk. It is better to use `_mint` and the caller is responsible for being able to obtain the token.
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.