Track vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
8.3

CVE-2026-52735: Zebra node may accept invalid Zcash blocks

CVE-2026-52735 · published 2 months ago
Summary

Zebra versions before 4.5.0 could count certain transaction signatures incorrectly, letting blocks pass Zebra validation that the official Zcash software rejects. This mismatch could cause a split in the network if Zebra miners include those blocks. Upgrade Zebra to version 4.5.0 or later to fix the counting error.

What to do
  • Update conradoplg zebra-script to version 7.0.0.
  • Update conradoplg zebrad to version 4.5.0.
  • Update zebra-script to version 7.0.0.
  • Update zebrad to version 4.5.0.
Affected software
Ecosystem VendorProductAffected versions
crates.io conradoplg zebra-script < 7.0.0
Fix: upgrade to 7.0.0
crates.io conradoplg zebrad < 4.5.0
Fix: upgrade to 4.5.0
rust conradoplg zebrad <= 4.4.1
Fix: upgrade to 4.5.0
rust conradoplg zebra-script <= 6.0.1
Fix: upgrade to 7.0.0
– zcashfoundation zebra < 4.5.0
rust – zebra-script <= 6.0.1
Fix: upgrade to 7.0.0
rust – zebrad <= 4.4.1
Fix: upgrade to 4.5.0
Original advisory text
ZEBRA: Consensus divergence via P2SH sigop undercount in pure-Rust disabled-opcode parser
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-operation counter undercounts redeem scripts containing a disabled opcode followed by signature opcodes. In zebra-script/src/lib.rs, p2sh_input_sigop_count used the pure-Rust script::Code::sig_op_count path, whose try_fold parser stops at disabled opcodes such as OP_CODESEPARATOR and returns only the partial count accumulated before the error. The zcashd reference implementation continues static signature-operation counting through disabled opcodes, so an attacker can broadcast P2SH spends that Zebra counts below MAX_BLOCK_SIGOPS while zcashd counts above the 20,000-operation limit. If a Zebra miner includes those transactions, Zebra validators accept the block while zcashd validators reject it, creating a consensus chain split that affects network integrity and availability without requiring the attacker to produce a block. This issue is fixed in version 4.5.0.
Fix within
Internet-facing 14 days
Internal 60 days
  • Not known to be exploited
  • Can be exploited automatically
  • Gives an attacker partial control
Severity
8.3 High
Exploitation
<1% chance of attack within 30 days
Type
CWE-684Incorrect Provision of Specified Functionality
Timeline
Published18 Aug 2026
Updated30 Oct 2026
First seen2 Jul 2026
Track software like this
Free during beta