WeatherNft::NftWeatherUpdated event can be updated emitted for nft token that are not minted yet. This is caused by a lack of check in the performUpkeep function of the WeatherNft contract.
The performUpkeep function does not check if the tokenId is minted before calling performUpkeep. This means the contract can call performUpkeep on a tokenId that is not minted yet. This cause, at the end of the function, the WeatherNft::NftWeatherUpdated event to be emitted for a tokenId that is not minted yet submitting wrong information on the chain.
Likelihood: LOW
It is improbable that a user will call performUpkeep on a tokenId that is not minted yet.
Impact: LOW
It only allow emitting wrong events on chain.
The attacker calls performUpkeep performUpkeep on a tokenId that is not minted yet.
The contract requests the weather update for the specified tokenId.
The contract emits the WeatherNft::NftWeatherUpdated for the specified tokenId.
Consider adding a check to ensure that the nft exists before calling performUpkeep.
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.