The expected behavior is that ETH sent to a contract is retrievable unless intentionally locked or burned.
The WeatherNft
contract accepts ETH via the requestMintWeatherNFT
function, but it lacks any mechanism to recover the ETH. This means all received ETH becomes permanently inaccessible, even to the contract owner.
Likelihood:
This issue will occur every time a user mints an NFT by sending ETH to the contract.
The lack of a withdrawal path affects all funds received since contract deployment.
Impact:
ETH sent to the contract is permanently locked.
The locked ETH is inaccessible for any upgrades, refunds, or operational needs.
I think the issue is clear enough
Add a secure withdraw function restricted to the contract owner or an authorized role. For example:
If funds are not meant to be withdrawn (i.e., intended to be permanently locked), this should be explicitly stated in the documentation.
The contract collects funds for minting a WeatherNFT, but there is no function that allows the owner to withdraw these funds.
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.