Location: contracts/src/TreasureHunt.sol:263-269; compare to constructor at contracts/src/TreasureHunt.sol:68
The constructor rejects a zero-address verifier:
But updateVerifier does not reproduce that guard:
Likelihood: Low. Requires an owner mistake.
Impact: Medium. If the owner accidentally passes address(0), every future claim() reverts on the external call to the verifier. The contract is recoverable if owner can call updateVerifier again, but all claims fail and the hunt is paused until the owner updates again .
Run:
The test passes updateVerifier(address(0)) is accepted.
Match the constructor's guard:
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.
The contest is complete and the rewards are being distributed.