Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain RPC credentials or cookie
-
DeliverySubmit crafted Unified Address to z_listunifiedreceivers
-
ExploitSapling receiver parse returns None
-
Execution.expect() panics with panic=abort
-
Persistzebrad process crashes
-
ImpactReplay on restart to sustain outage
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V16 - Security Logging and Error Handling Reachable assertion handling
|
| Exploitation Conditions | Exploitation requires that (1) the zebrad node has the RPC server enabled via rpc.listen_addr set to a TCP address in zebrad.toml - this is NOT the default; and (2) the attacker can authenticate to the RPC endpoint. Under the DEFAULT enable_cookie_auth=true, authentication requires reading the local .cookie file, which generally implies local filesystem access, significantly limiting remote exploitation. Only when enable_cookie_auth=false can any network client reaching the RPC port trigger it without a credential barrier. The specific trigger is a call to the z_listunifiedreceivers RPC method with a structurally valid Unified Address whose Sapling receiver carries 43 bytes that fail Jubjub subgroup validation. Limiting factors: RPC must be explicitly enabled, cookie authentication (default) confines most attacks to local actors, and impact is availability-only (node crash) with no data exposure. |
| Impact | This is a moderate-priority availability issue (CVSS 4.0 base 7.1, VA:H) rather than a top-tier emergency, and the real-world signals are mixed. The CVSS 4.0 vector (AV:N/AC:L/PR:L/UI:N) indicates a low-complexity network attack requiring only low privileges, with impact limited purely to availability (VC:N/VI:N/VA:H) - no data compromise. However, the 'network + low privilege' framing understates the practical barrier: the GHSA advisory confirms that in the DEFAULT configuration (enable_cookie_auth=true), exploitation requires reading the local .cookie file, which typically means local access - so the PR:L metric is effectively satisfied only by attackers who are already local or who have been given RPC credentials. The fully remote-unauthenticated-against-network scenario only applies in the non-default enable_cookie_auth=false deployment, and only when rpc.listen_addr is set at all (RPC is a non-default opt-in). No EPSS score, KEV listing, or public POC was provided, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the finding originates from VulnCheck research rather than observed attacks. Net: a genuine, easily-triggered crash bug worth patching promptly for any node operator exposing RPC, but the limited deployment footprint, availability-only impact, and the authentication/local-access gate keep this well below critical real-world urgency. |
| Exploit ScenarioDerived | An attacker with valid RPC access to a zebrad node (either via a leaked/readable .cookie file under the default auth, or any network client if cookie auth is disabled) sends a single z_listunifiedreceivers call containing a structurally valid Unified Address whose 43-byte Sapling receiver encodes a non-subgroup Jubjub point. The handler's .expect() on the failed parse panics, and because the release profile uses panic="abort", the entire zebrad process terminates. The attacker simply replays the same request after each restart to keep the full node permanently offline. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
An authenticated RPC client can crash a Zcash Foundation Zebra full node by calling the z_listunifiedreceivers RPC method with a crafted Unified Address whose Sapling receiver carries 43 bytes that fail Jubjub subgroup validation, triggering a reachable assertion (.expect()) that aborts the entire zebrad process because Zebra's release profile is built with panic = "abort". Affected releases are zebra-rpc through 7.0.0 and zebrad through 4.4.1 (fixed in zebra-rpc 8.0.0 and zebrad 4.5.0), and the request is repeatable on restart, so a node can be kept persistently offline. Exploitation requires the RPC server to be explicitly enabled via rpc.listen_addr and the attacker to authenticate - with the default enable_cookie_auth=true this generally implies local access to the .cookie file, making fully remote exploitation a non-default configuration - and no public exploit code was identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade to zebrad 4.5.0 and zebra-rpc 8.0.0, which replace the panicking .expect() with proper error propagation (map_err into an RPC ErrorObject) or route the call through the existing try_from_unified path that already returns Err for invalid Sapling receivers; see https://github.com/ZcashFoundation/zebra/security/advisories/GHSA-c8w6-x74f-vmg3. If upgrading is not immediately possible, the primary compensating control is to disable the RPC server entirely by removing rpc.listen_addr from zebrad.toml - this fully closes the vector but forfeits all RPC-based monitoring, wallet integration, and operational tooling. Where the RPC endpoint must remain available, keep enable_cookie_auth set to true (the default) and lock down filesystem permissions on the .cookie file so only trusted local operators can read it, accepting that this confines the risk rather than eliminating it for local or credentialed actors. As a further layer, place a reverse proxy or API gateway in front of the RPC port that rejects or filters z_listunifiedreceivers requests with address parameters supplied by untrusted callers; this adds latency and configuration complexity and can be bypassed by any client that reaches the RPC port directly, so it should not substitute for the patch. Note that the crash is repeatable on restart, so restart-based recovery alone does not restore availability until the patch or a mitigation is in place.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in cargo, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a reachable assertion (CWE-617) in Zebra's z_listunifiedreceivers RPC handler, located at zebra-rpc/src/methods.rs around line 2893. Unified Addresses in Zcash are encoded with F4Jumble and bech32m, and the zcash_address::unified::Encoding::decode routine only validates the structural envelope - Jumble wrapping, bech32m checksum, typecode ordering, and the fixed 43-byte length of a Sapling receiver. It does not validate that the embedded pk_d element is a valid Jubjub subgroup point or that the diversifier yields a valid g_d preimage; most random 32-byte strings fail that subgroup check. The handler then calls Address::try_from_sapling(network, data), which delegates to sapling_crypto::PaymentAddress::from_bytes; when that returns None, the call site fires .expect("using data already decoded as valid"), and because the release profile sets panic = "abort", the panic terminates the whole node rather than just the RPC task. The same crate already handles this case correctly in try_from_unified at zebra-chain/src/primitives/address.rs:99-110, which propagates an Err instead of panicking; the vulnerable path simply bypasses that validated route. The result is availability-only impact - no confidentiality or integrity loss - consistent with the assessed CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H (vendor CVSS 4.0 base 7.1, VA:H).
Know when Zebra gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Authenticated RPC access required (PR:L), low-complexity single-request trigger over network (AV:N/AC:L), process abort yields availability-only impact (A:H, C/I:N, scope unchanged).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
ZcashFoundation Zebra zebra-rpc before 8.0.0 and zebrad before 4.5.0 contain a reachable assertion in the z_listunifiedreceivers RPC handler, which calls expect() on Sapling receiver parsing that fails for Unified Addresses carrying invalid Jubjub points. Authenticated RPC clients can submit such an address to abort the zebrad process, repeatably keeping the node offline.
Technical POC Analysis
Evidence base: GitHub Security Advisory GHSA-c8w6-x74f-vmg3 only.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Organizations running Zcash Foundation Zebra full nodes with the RPC server enabled face a high-severity availability risk from CVE-2026-104434, which can crash and persistently disable affected nodes, disrupting Zcash transaction processing and network participation. The vulnerability affects zebra-rpc through 7.0.0 and zebrad through 4.4.1, and the vendor has released fixed versions zebra-rpc 8.0.0 and zebrad 4.5.0. Leadership should prioritize patching or disabling RPC exposure for these nodes to prevent operational outages.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Remote denial-of-service in Zebra (Zcash node implementation) versions prior to 4.4.0 allows unauthenticated attackers t
Motorola FX9500 devices allow remote attackers to conduct absolute path traversal attacks, as demonstrated by PL/SQL Ser
An issue was discovered on Zebra (formerly Motorola Solutions) Fixed RFID Reader FX9500 devices. Rated critical severity
Remote, unauthenticated denial of service in Zcash Foundation's Zebra full node: versions 6.4.0 through 6.4.1 abort when
Unauthenticated denial of service in Zebra (Zcash Foundation's full node implementation) before 6.0.0 allows remote peer
Remote unauthenticated attackers can cause a consensus divergence in Zcash Zebra nodes (zebrad 4.5.0 and zebra-script 7.
Zcash Foundation's Zebra full node (zebrad) before 6.2.1 can be stalled in block verification by any unauthenticated pee
Block-sync denial of service in Zebra (zebrad), the Rust implementation of a Zcash full node, affects all versions befor
Consensus divergence in Zebra Zcash nodes before 4.4.0 allows unauthenticated remote attackers to craft V5 transparent t
Zcash Zebra nodes running zebrad 4.4.0 or zebra-script 6.0.0 incorrectly accept V5 transparent transactions in which a S
Denial of service in the Zcash Foundation's Zebra full node before 6.1.0 lets remote unauthenticated peers stall node sy
Denial of service in the Zcash Foundation's Zebra full node implementation before 6.1.0 allows an unauthenticated remote
EUVD-2026-91444
GHSA-fxgv-g76m-8hg2
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB