Description: 'fulfillMintRequest(bytes32 requestId)' is external with no msg.sender check and mints to msg.sender, not the original requester.
Impact: An attacker observing a ready Chainlink Functions response can front-run the legitimate user, calling 'fulfillMintRequest' first and stealing the NFT.
Proof of Concept: Include the following test in the WeatherNftForkTest.t.sol
file:
Recommended Mitigation: Restrict to the oracle or original requester:
There is no check to ensure that the caller of the `fulfillMintRequest` function is actually the owner of the `requestId`. This allows a malicious user to receive a NFT that is payed from someone else.
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.