Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-52733

CVE-2026-52733: ZEBRA Zcash Node Information Disclosure

CVE-2026-52733 is an information disclosure vulnerability in ZEBRA Zcash node that causes stale subtree roots to persist during chain forks, corrupting wallet synchronization. This article covers technical details, impact, and mitigation.

Published:

CVE-2026-52733 Overview

CVE-2026-52733 affects Zebra, a Zcash node implementation written in Rust. Prior to version 4.5.0, a natural or attacker-influenced chain fork can leave stale Sapling and Orchard note-commitment subtree roots in Zebra state. The Chain::pop_tip function in zebra-state/src/service/non_finalized_state/chain.rs removed reverted tip blocks without removing subtree entries whose end_height belonged to those blocks. When the winning fork later finalized, abandoned branch data persisted to RocksDB and survived node restarts. The flaw is tracked under [CWE-459: Incomplete Cleanup].

Critical Impact

Corrupted subtree data can cause z_getsubtreesbyindex consumers such as lightwalletd and light wallets to receive incorrect subtree roots, producing wallet synchronization failures that require a full state rebuild for recovery.

Affected Products

  • Zebra Zcash node versions prior to 4.5.0
  • Downstream lightwalletd instances relying on affected Zebra nodes
  • Light wallets consuming z_getsubtreesbyindex from vulnerable Zebra nodes

Discovery Timeline

  • 2026-08-18 - CVE-2026-52733 published to NVD
  • 2026-08-19 - Last updated in NVD database

Technical Details for CVE-2026-52733

Vulnerability Analysis

Zebra maintains a non-finalized state tracking multiple candidate chain tips before block finalization. The state includes note-commitment subtree roots for Sapling and Orchard shielded pools. These subtrees are indexed by end_height, the block height at which each subtree completes.

When a chain reorganization occurs, Zebra rolls back the losing fork by calling Chain::pop_tip on reverted blocks. The function correctly removed block data but omitted cleanup logic for subtree entries associated with the popped block. This diverged from pop_root, which performed the equivalent cleanup on the opposite end of the chain.

Once the winning fork finalizes, the non-finalized state flushes to RocksDB persistent storage. Stale subtree entries from abandoned branches were written alongside legitimate data and persisted across restarts.

Root Cause

The root cause is incomplete cleanup [CWE-459] in Chain::pop_tip. The function reverts a tip block from the in-memory chain but fails to iterate and remove subtree entries whose end_height matches the reverted block. The absence of this cleanup step allows subtree state to diverge from block state.

Attack Vector

An attacker capable of influencing chain forks, or a naturally occurring reorganization, triggers the condition. The network-based attack requires no authentication but has high complexity because it depends on inducing or exploiting a fork containing shielded-pool subtree boundaries. The resulting state corruption affects integrity of wallet synchronization data served to downstream clients.

text
// Cargo.lock patch excerpt from v4.5.0 release
[[package]]
 name = "zebra-chain"
-version = "7.0.0"
+version = "8.0.0"
 dependencies = [
  "bech32",
  "bitflags 2.11.1",

Source: GitHub Zebra Commit 1440b43

Detection Methods for CVE-2026-52733

Indicators of Compromise

  • Wallet synchronization failures reported by lightwalletd instances connected to a Zebra node running a version prior to 4.5.0.
  • z_getsubtreesbyindex responses that do not match subtree roots observed on independent, patched Zcash nodes.
  • Persistent state inconsistencies in RocksDB that survive node restarts and manifest only after chain reorganizations.

Detection Strategies

  • Compare subtree roots returned by z_getsubtreesbyindex against known-good values from a reference node running Zebra 4.5.0 or zcashd.
  • Monitor node logs for chain reorganization events followed by wallet client errors from downstream lightwalletd consumers.
  • Audit deployed Zebra node versions across infrastructure and flag any instance below 4.5.0.

Monitoring Recommendations

  • Track chain reorganization frequency and depth as an operational metric on all Zebra nodes.
  • Alert when lightwalletd clients report subtree root mismatches or repeated resync attempts.
  • Log Zebra version banners and compare them against the patched baseline during scheduled configuration audits.

How to Mitigate CVE-2026-52733

Immediate Actions Required

  • Upgrade all Zebra nodes to version 4.5.0 or later, which contains the fix in Chain::pop_tip.
  • Rebuild node state after upgrade if the node experienced reorganizations while running a vulnerable version, since persisted stale subtree data will remain until state is reconstructed.
  • Notify downstream lightwalletd and wallet operators to resynchronize once nodes are patched and state is rebuilt.

Patch Information

The fix is included in Zebra v4.5.0. See the GitHub Security Advisory GHSA-2gf8-q9rr-jq3h and the Zebra v4.5.0 Release Notes. The corrective commit is available at GitHub Zebra Commit 1440b43.

Workarounds

  • No configuration-based workaround exists; the fix requires upgrading to Zebra 4.5.0.
  • Operators unable to upgrade immediately should perform a full state rebuild after any chain reorganization to purge stale subtree entries.
  • Redirect downstream lightwalletd traffic to a patched reference node until the local Zebra instance is upgraded.
bash
# Upgrade Zebra to the patched release
git clone https://github.com/ZcashFoundation/zebra.git
cd zebra
git checkout v4.5.0
cargo build --release

# Rebuild state after upgrade to remove any persisted stale subtree data
rm -rf ~/.cache/zebra/state
./target/release/zebrad start

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.