Zcash Zebra consensus split via sig (CVE-2026-44497)
CVE-2026-44497
CVE-2026-44497: Zcash Zebra daemon (zebrad <4.4.0) and lib (zebra-script <6.0.0) bug causes a network consensus split. Update to zebrad 4.4.0 or zebra-script 6.0.0.
Patch now - CVE-2026-44497 is a critical consensus-divergence vulnerability in Zcash Zebra (zebrad <4.4.0, zebra-script <6.0.0) that causes a chain split between Zebra and zcashd nodes. This effectively partitions the Zcash network, as Zebra nodes may accept transactions or blocks that zcashd rejects due to improper signature validation.
Overview
CVE-2026-44497 arises from a fix introduced for CVE-2026-41583. While patching a previous issue, the developers introduced insufficient error handling when the signature hash type (sighash type) is invalid. During the sighash computation, if an invalid hash type is encountered, the function now fails to return an error. Instead, execution continues normally, leaving the input sighash buffer unchanged from a previous, valid operation.
In scenarios where a preceding signature validation had populated this buffer with a valid sighash, an attacker can construct a transaction with an invalid hash type that “inherits” a valid signature. This allows the transaction to pass Zebra’s verification while being rejected by zcashd due to the invalid hash type. The result is a consensus split: Zebra and zcashd nodes see different transaction validity on the same block chain.
Impact
A successful exploitation allows an attacker to submit transactions that are valid on the Zebra network but invalid on the zcashd network. This diverges the chain state between the two node implementations, undermining the consensus guarantees of the Zcash network. No prior authentication is required; the attack is launched over the network with low complexity.
Patch Guide
Zcash developers have patched the issue in zebrad version 4.4.0 and zebra-script version 6.0.0.
Action item: Upgrade all Zebra nodes to zebrad >= 4.4.0 or zebra-script >= 6.0.0 immediately. If you rely on zebra-script as a library, ensure your dependency pins to zebra-script 6.0.0 or later.
No workarounds exist short of the vendor fix; any node running prior versions risks participating in the wrong chain fork.
Security Insight
This vulnerability is a textbook example of the risks of incomplete patch rollout. The original fix for CVE-2026-41583 correctly addressed one attack vector but inadvertently created a new one by altering code paths without sufficiently testing edge cases. It underscores the principle that every security patch must be reviewed for regressions, especially in consensus-critical software where a single validation error can fragment an entire blockchain. For network operators still running older Rust-based Zcash implementations, the window for exploitation is immediate and consequential.
Further Reading
Never miss a critical vulnerability
Get real-time security alerts delivered to your preferred platform.
Related Advisories
Missing JWT signature verification in AWS Ops Wheel allows unauthenticated attackers to forge JWT tokens and gain unintended administrative access to the application, including the ability to read, mo...
A condition in ScreenConnect may allow an actor with access to server-level cryptographic material used for authentication to obtain unauthorized access, including elevated privileges, in certain scen...
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.9, a JWK Header Injection vulnerability in authlib's JWS implementation allows an unauthenticated attack...
JOSE is a Javascript Object Signing and Encryption (JOSE) library. Prior to version 0.3.5+1, a vulnerability in jose could allow an unauthenticated, remote attacker to forge valid JWS/JWT tokens by us...