Root: The contract performs an external token transfer call before updating internal state or protecting reentrancy.
Impact: A malicious token contract can re-enter the function before the state is consistent, leading to duplicated minting or state manipulation.
Normally, the function requestMintWeatherNFT
registers a keeper and collects LINK tokens from the user using safeTransferFrom
, then proceeds with other logic including requesting weather data and storing the mint request.
However, if a malicious ERC20 token contract is used, it can reenter the same function or related logic during the safeTransferFrom
call, because state updates or locks (like nonReentrant
) are not applied yet.
CopyEdit
Likelihood:
Attack surface opens when malicious tokens are used or in untrusted deployments.
Commonly missed in test environments using mock ERC20s.
Impact:
Double minting, corrupted accounting, or stuck LINK.
MaliciousLINK
token exploits the ERC20 transfer hook to re-enter the original requestMintWeatherNFT
call during the safeTransferFrom
, allowing attackers to bypass mint price increases, limits, or even mint multiple NFTs in one transaction.nonReentrant
modifier to the function blocks recursive calls entirely. This defends against reentrancy by ensuring either: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.