Skip to main content

Zcash Zebra CVE-2026-104428

| EUVDEUVD-2026-91439 MEDIUM
Reachable Assertion (CWE-617)
2026-10-02 VulnCheck GHSA-2qvh-q2cj-955r
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach Zebra RPC endpoint (direct or via lightwalletd)
  2. Delivery
    Send getblock verbosity 2 for side-chain block
  3. Exploit
    -1 sentinel .expect() to u32 panics
  4. Execution
    Node process aborts
  5. Persist
    Repeat call to sustain crash loop
  6. Impact
    Node availability denied

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V16 - Security Logging and Error Handling Reachable assertion handling
Exploitation Conditions

The Zebra node's getblock JSON-RPC method must be reachable by the attacker - either a directly exposed RPC port or an upstream lightwalletd instance that forwards block queries. The specific trigger is a getblock request with verbosity 2 referencing a side-chain (orphan/non-best-chain) block, whose confirmations value is the -1 sentinel; this is what drives the .expect() panic. No authentication, privileges, or user interaction are required (PR:N/UI:N) and default configurations of affected Zebra versions (<11.0.0) are vulnerable. The primary limiting factor is the need for a side-chain block to exist and be addressable - a routine but not constant condition; impact is confined to availability (node crash/crash loop), with no data exposure or code execution.

Impact

This is a remote, unauthenticated denial-of-service in Zebra's getblock RPC (CWE-617, reachable assertion/panic). The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms network reach with low complexity and no privileges or user interaction, and impact is confined to availability (VC:N/VI:N/VA:L, score 6.9) - there is no confidentiality or integrity exposure. The genuine aggravating factor is that the panic aborts the process and the call can be repeated, producing a sustained crash loop rather than a single transient fault, so the real availability impact is arguably higher than the vendor's VA:L (I assess High). Countervailing signals keep this below top priority: no EPSS score was supplied, the CVE is NOT in CISA KEV, and no public exploit code is referenced, so there is no evidence of active or widespread exploitation. Note a conditional prerequisite the raw CVSS obscures - exploitation depends on a side-chain (orphan) block existing and getblock being invoked with verbosity 2 against it; this is a normal occurrence but means it is not a trivially-always-reachable crash. Net: a legitimate patch-worthy availability bug for Zebra operators (especially those exposing RPC or fronting it with lightwalletd), but not a mass-exploitation emergency given the niche footprint and absence of exploitation signals.

Exploit ScenarioDerived

A remote unauthenticated attacker with network access to a Zebra node's RPC interface (directly, or indirectly via a lightwalletd service that relays queries) issues a getblock call with verbosity 2 targeting a side-chain block, whose -1 confirmations sentinel is forced into a u32 via .expect() and panics the process. The attacker scripts this call to fire repeatedly, aborting the node each time it restarts and holding it in a crash loop. No public exploit code is identified at time of analysis, but the trigger is a single well-formed RPC request requiring no special tooling.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 02, 2026

Remote, unauthenticated denial of service in the Zcash Foundation's Zebra node: any attacker who can reach the getblock JSON-RPC method - directly or through a lightwalletd instance that forwards block queries - can crash the node process, and by repeating the call hold it in a crash loop, by requesting verbosity 2 for a side-chain block. All Zebra versions before 11.0.0 are affected, and default configurations are vulnerable because the flaw is triggered by a routine, unprivileged RPC request requiring no credentials, privileges, or user interaction. Impact is limited to availability (node crash/crash loop) with no data exposure or code execution; no public exploit code has been identified at time of analysis and the issue is not listed in CISA KEV, though the low complexity and remote reachability make it operationally significant for operators exposing the RPC surface.

RemediationAI

Vendor-released patch: upgrade Zebra to 11.0.0 or later, which is the fixed version identified in the vendor security advisory (https://github.com/ZcashFoundation/zebra/security/advisories/GHSA-x6v8-c2xp-928m); the vendor also publishes patch availability, and the corroborating breakdown is at https://www.vulncheck.com/advisories/zebra-before-11.0.0-denial-of-service-via-getblock-verbosity-2. Until upgrading is possible, the most effective compensating control is to remove reachability of the RPC surface from untrusted networks: bind the JSON-RPC listener to localhost/loopback or a management interface, firewall the RPC port so only trusted hosts can connect, and enable RPC authentication where the deployment supports it - the trade-off is that remote tooling, dashboards, and any indexers that query the node from another host will need relocation or a proxy, and lightwalletd deployments must be checked separately because a front end that forwards client block queries keeps the vulnerable method reachable even when direct RPC access is closed. A second option is to filter or reject getblock requests with verbosity 2 (and, where feasible, requests for non-best-chain blocks) at a reverse proxy or API gateway in front of the node; this stops the panic trigger but degrades or breaks clients that legitimately rely on verbose block output. Because the attack is a crash loop rather than a one-shot failure, pair any of the above with process supervision that restarts the node and alerting on repeated panics or unexpected restarts, recognizing that auto-restart only shortens downtime and does not prevent the crash itself. Disabling verbosity-2 support, restricting the RPC port, and requiring authentication all carry the same class of side effect - reduced functionality or availability for dependent tooling - so the upgrade to 11.0.0 remains the primary and least disruptive fix.

Affected VersionsENISA

zebra 0 <11.0.0

Affected Packages

euvd zebra fix: 11.0.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Zebra is the Rust implementation of a Zcash full node maintained by the Zcash Foundation; its JSON-RPC layer exposes blockchain query methods, including getblock, which accepts a verbosity parameter that controls the shape of the returned data. This issue is classified CWE-617 (Reachable Assertion): when getblock is called with verbosity 2 against a side-chain (orphan/non-best-chain) block, the node computes a confirmations value of -1 as a sentinel for blocks not on the main chain, and the code path converts that signed value into an unsigned u32 using .expect(), causing a Rust panic that terminates the process rather than returning an RPC error. The vulnerability is therefore not a memory-safety or injection defect but an unchecked assumption in the RPC serialization/formatting logic - an input class (side-chain blocks) that the developer did not account for. CPE data pins the affected component to the single package cpe:2.3:a:zcashfoundation:zebra:*:*:*:*:*:*:*:*, with EUVD recording the affected range as zebra 0 through <11.0.0, confirming the flaw spans the entire release history up to the 11.0.0 fix. Because the failing call is a normal, well-formed RPC request and no authentication or privilege is required, the reachable assertion is trivial to trigger from any client with network access to the RPC endpoint or with the ability to influence a lightwalletd front end.

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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated single-request panic with no UI (AV:N/AC:L/PR:N/UI:N); repeatable crash loop sustains full outage so A:H, with no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 02, 2026 - 12:02 EUVD

DescriptionCVE.org

The getblock RPC method in zebra-rpc before 11.0.0, used by the Zcash Foundation's Zebra node, panics on verbosity 2 for a side-chain block because the block's -1 confirmations sentinel is converted to u32 with .expect(), aborting the process. Remote unauthenticated attackers, directly or through lightwalletd, can repeat this call to keep the node in a crash loop.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Low
Zcash-only alternative node implementation, niche cryptocurrency ecosystem
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Zebra

View all
CVE-2026-44499 HIGH POC
8.7 May 08

Remote denial-of-service in Zebra (Zcash node implementation) versions prior to 4.4.0 allows unauthenticated attackers t

CVE-2020-10875 HIGH POC
7.5 Mar 23

Motorola FX9500 devices allow remote attackers to conduct absolute path traversal attacks, as demonstrated by PL/SQL Ser

CVE-2021-32089 CRITICAL
9.8 May 11

An issue was discovered on Zebra (formerly Motorola Solutions) Fixed RFID Reader FX9500 devices. Rated critical severity

CVE-2026-109363 HIGH
8.7 Oct 12

Remote, unauthenticated denial of service in Zcash Foundation's Zebra full node: versions 6.4.0 through 6.4.1 abort when

CVE-2026-104431 HIGH
8.7 Oct 02

Unauthenticated denial of service in Zebra (Zcash Foundation's full node implementation) before 6.0.0 allows remote peer

CVE-2026-104430 HIGH
8.7 Oct 02

Remote unauthenticated attackers can cause a consensus divergence in Zcash Zebra nodes (zebrad 4.5.0 and zebra-script 7.

CVE-2026-104423 HIGH
8.7 Oct 02

Zcash Foundation's Zebra full node (zebrad) before 6.2.1 can be stalled in block verification by any unauthenticated pee

CVE-2026-104422 HIGH
8.7 Oct 02

Block-sync denial of service in Zebra (zebrad), the Rust implementation of a Zcash full node, affects all versions befor

CVE-2026-104437 HIGH
8.3 Oct 02

Consensus divergence in Zebra Zcash nodes before 4.4.0 allows unauthenticated remote attackers to craft V5 transparent t

CVE-2026-104435 HIGH
8.3 Oct 02

Zcash Zebra nodes running zebrad 4.4.0 or zebra-script 6.0.0 incorrectly accept V5 transparent transactions in which a S

CVE-2026-104427 HIGH
8.2 Oct 02

Denial of service in the Zcash Foundation's Zebra full node before 6.1.0 lets remote unauthenticated peers stall node sy

CVE-2026-104426 HIGH
8.2 Oct 02

Denial of service in the Zcash Foundation's Zebra full node implementation before 6.1.0 allows an unauthenticated remote

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy