updateVerifiershould update the Verifier with a valid non-zero contract address.
The updateVerifier function does not validate that the new verifier address is not zero.
Likelihood:
Reason 1: Owner could accidentally set verifier to address(0)
Reason 2: Owner could maliciously set verifier to address(0)
Impact:
Impact 1: This would brick the contract permanently as no valid proofs could be verified.
Impact 2: Claims would always fail.
When the owner accidentally set verifier to address(0), following claims would always fail.
Add non-zero-address verification to `TreasureHunt.updateVerifier()`.
The issue is that `updateVerifier()` allows the owner to replace the verifier with an arbitrary address, including `address(0)`, even though the constructor explicitly treats a zero verifier as invalid and reverts with `InvalidVerifier()` during initial deployment. In other words, the contract establishes at deployment time that a null verifier address is not an acceptable configuration, but then fails to preserve that same invariant when the verifier is later updated through the admin recovery path.
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.