Skip to content
Fencer Vulns
medium 6.5

CVE-2026-52733 json

ZEBRA: Persistent on-disk corruption of Sapling/Orchard subtree roots after chain fork via pop_tip

published 2026-07-02 4 mo ago modified 2026-09-09 1 mo ago also EUVD-2026-61168 , GHSA-2gf8-q9rr-jq3h

cvss
6.5
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 38%
public exploits
0
none known

Summary

ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a natural or attacker-influenced chain fork can leave stale Sapling and Orchard note-commitment subtree roots in Zebra state. In zebra-state/src/service/non_finalized_state/chain.rs, Chain::pop_tip removed a reverted tip block but did not remove subtree entries whose end_height belonged to that block, unlike the cleanup performed by pop_root. When the winning fork later finalized, the abandoned branch's stale subtree data could be written to RocksDB and survive node restarts. The corrupted history can cause z_getsubtreesbyindex consumers such as lightwalletd and light wallets to receive incorrect subtree roots, producing wallet synchronization failures or incorrect wallet state and requiring a full state rebuild for recovery. This issue is fixed in version 4.5.0.

Patch / fix

  • crates.io zebra-state 7.0.0
  • crates.io zebrad 4.5.0
  • zfnd zebra 4.5.0
  • zfnd zebrad 4.5.0
  • zfnd zebra-state 7.0.0

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 mo ago

Exploit prediction

0.44% chance of exploitation in the next 30 days, higher than 38% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 6.5 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
GitHub 3.1 6.5 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L

Affected packages

ecosystem package affected fixed in
crates.io zebra-state
<7.0.0
7.0.0
crates.io zebrad
<4.5.0
4.5.0

Affected products

  • ZcashFoundation zebra
  • ZcashFoundation zebra-state

Classification

Weakness
  • CWE-459 Incomplete Cleanup
  • CWE-672 Operation on a Resource after Expiration or Release

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.

CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.