The updateVerifier method allows th owner to update the verifier address incase of an issue
Since the zero address check is missing, the owner could accidentlly set the zero address as the new verifier which could lead to lock up of funds permanently and break all claims
Likelihood:
As the comment says, when the owner wants to update the verifier, they will call this function to do so.
Impact:
Since there is no check whether the new verifier is the zero address, the owner can potentially set the zero address to be the new verifier and this could lead to permanent lock up of funds
The floowing PoC tests show that the issue will cause the contract to be permanently locked
Simply check if the newVerifer is the zero address and revert if it is not.
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.