The constructor correctly guards against a zero-address verifier using the InvalidVerifier error. However, updateVerifier() has no equivalent check, allowing the owner to set the verifier to address(0) — either accidentally or maliciously. Once set, all future claim() calls will silently fail verification and revert with InvalidProof, permanently locking participants out.
Likelihood:
Requires owner action, accidental mis-paste or wrong address during verifier upgrade
Owner is trusted but human error is realistic during contract maintenance
Impact:
All future claim() calls revert InvalidProof — participants permanently locked out
ETH remains in contract, recoverable by owner via emergency Withdraw(), but hunt is effectively dead
InvalidVerifier error is already defined in the contract but unused in this function, clear oversight
The hunt.updateVerifier() function is missing an address(0) check.
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.