Junglewise Threat Intelligence

CVE-2026-52735: ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, Zebra can accept a block that zcashd rejects because the P2SH signature-oper

CVE-2026-52735 · Severity: critical · CVSS 4 · Published 2026-08-18

Technologies: zebra-script (crates.io), zebrad (crates.io). Vendors: crates.io.

Executive brief

Zebra is a software node used to validate and participate in the Zcash cryptocurrency network. A flaw in how it counts security operations for certain transaction types allows an attacker to create transactions that Zebra accepts but other network nodes (zcashd) reject. This can lead to a 'chain split,' where the network divides into two incompatible versions, potentially disrupting transactions, mining operations, and the overall stability of the Zcash ecosystem.

Technical details

A consensus divergence exists in Zebra's P2SH sigop counter within the `zebra-script` crate. The pure-Rust parser in `zcash_script` incorrectly short-circuits when encountering disabled opcodes (e.g., OP_CODESEPARATOR), returning a partial sigop count of zero for subsequent operations. In contrast, the reference implementation (zcashd) continues counting through these opcodes during static analysis. An attacker can broadcast transactions with malicious P2SH redeem scripts that cause Zebra to undercount sigops, allowing a block to stay under the MAX_BLOCK_SIGOPS limit for Zebra while exceeding it for zcashd. This results in Zebra nodes accepting blocks that zcashd nodes reject, triggering a chain split. The issue is fixed in Zebra 4.4.2 (zebrad) and 7.0.0 (zebra-script) by routing P2SH sigop counting through the C++ FFI.

Affected products

  • ZcashFoundation zebrad <= 4.4.1
  • ZcashFoundation zebra-script <= 6.0.1

Timeline

  • 2026-05-29: disclosed: Reported via private GitHub Security Advisory
  • 2026-07-02: advisory: Public advisory published

References

Related threats