Skip to main content

Zcash Zebra CVE-2026-123557

| EUVDEUVD-2026-119442 HIGH
Reachable Assertion (CWE-617)
2026-11-08 VulnCheck GHSA-cpwj-fm29-9h32
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Complete P2P handshake with syncing node
  2. Delivery
    Send empty FindBlocks/FindHeaders replies
  3. Exploit
    Stop reading socket to block outbound send
  4. Execution
    Trigger stall-based peer removal mid-send
  5. Persist
    Unresolved response sender dropped, assertion fires
  6. Impact
    Process aborts, node stops syncing/relaying/RPC

Vulnerability Assessment

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

Exploitation requires all of: the target runs zebrad before 7.0.0 (specifically 6.4.2 or earlier, or 7.0.0-rc.0); a release build, which is the default for published binaries and Docker images and sets panic=abort so an assertion terminates the process; and a node that accepts or makes P2P connections to untrusted peers (the default). The attacker needs only an ordinary post-handshake P2P connection - no credentials (PR:N). Limiting factors: the trigger is a timing race (CVSS AC:H/AT:P) in which a pending outbound socket write must overlap a peer disconnection, and the confirmed trigger path applies only while the node is syncing (more than 1,000 blocks behind the network tip), though the vendor notes other disconnection paths reaching the same window were not ruled out. There is no configuration option that removes the trigger; only upgrading to 7.0.0 does. A process supervisor with automatic restart (e.g. systemd Restart=on-failure or a container restart policy) limits outage duration but does not prevent the abort.

Impact

This is a genuine but bounded availability risk, not a high-severity emergency. The signals are internally consistent: the CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N) describes an unauthenticated, network-reachable flaw whose exploitation is gated by high attack complexity and a specific attack requirement - a timing window where a pending outbound socket write overlaps a peer disconnection - and the only impact is availability (VA:H; VC:N/VI:N) with no scope change. The GHSA advisory corroborates this precisely: no consensus, funds, privacy, or persistent-state impact, and the node recovers on restart. The vuln.today decision label is 'this_week' (not act_now/emergency), which matches a serious DoS without active exploitation. Exploitation status: no public exploit identified at time of analysis - there is no CISA KEV listing, no EPSS score, and no PoC/exploit reference in the input; the advisory credits two independent researcher rediscoveries but does not publish working exploit code. The practical priority is driven by the fact that the defect is in the connection request lifecycle (reachable on multiple disconnection paths, not just the confirmed syncing-stall path) and affects default release builds, so every node on an affected version should be treated as exposed. Missing data to note: EPSS and KEV are absent (not errors, just unavailable), and no independent confirmation of exploitation in the wild exists.

Exploit ScenarioDerived

A malicious peer completes a normal P2P handshake with a syncing zebrad node, returns empty FindBlocks/FindHeaders replies to be counted as stalls, and stops reading from its socket so an outbound send blocks. When the peer set removes the stalled peer while that write is still pending, an unresolved MustUseClientResponseSender is dropped, firing an assertion that aborts the release build (panic=abort) and terminates the node. No public exploit code is identified; the race is timing-dependent (CVSS AC:H/AT:P), so a trigger may require repeated attempts.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Nov 08, 2026

Unauthenticated remote peers can crash a Zcash Foundation Zebra node (zebrad) by exploiting a reachable-assertion race in the P2P connection's request lifecycle. A peer that completes an ordinary handshake, returns empty FindBlocks or FindHeaders replies, and then stops reading its socket can cause its connection to be torn down while an outbound send is still parked; the unresolved MustUseClientResponseSender is dropped, its Drop assertion fires, and because release builds use panic=abort the entire process exits, halting syncing, relaying and RPC until restart. Affected are zebrad builds before 7.0.0 (notably 6.4.2 or earlier and 7.0.0-rc.0) running as release binaries or Docker images with default P2P exposure, with the confirmed trigger path requiring the node to be syncing (more than 1,000 blocks behind tip); the timing-dependent nature (AC:H/AT:P) and availability-only impact keep this a genuine but bounded denial-of-service risk, and no public exploit code was identified at time of analysis, though the vendor has published a full technical advisory and a fixed 7.0.0 release.

RemediationAI

Upgrade zebrad to 7.0.0 or later, which is the only complete fix: the patched connection owns the response sender for the entire outbound send (Connection::sending_request_tx) and resolves it with an error from Connection::shutdown when the task is cancelled mid-send, with a regression test covering cancellation during a parked send; consult the release notes at github.com/ZcashFoundation/zebra/blob/v7.0.0/CHANGELOG.md and advisory GHSA-6v36-c42v-v98p. The vendor states there is no configuration option that removes the trigger, so disabling features or restricting peers is not a substitute for upgrading. As a compensating control that limits - but does not prevent - the outage, run zebrad under a process supervisor with automatic restart, such as systemd Restart=on-failure or a container restart policy; the trade-off is that each abort still kills the process and briefly interrupts syncing, relaying and RPC service while the node restarts, and a peer that repeats the trigger can prolong the outage of an individual node.

Affected VersionsENISA

zebra 0 <7.0.0

Affected Packages

euvd zebra fix: 7.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 node, built on async tasks. Every outbound request to a peer carries a MustUseClientResponseSender whose Drop implementation asserts the handle was either used or explicitly cancelled, skipping the check only during global shutdown (zebra-network/src/peer/client.rs). Connection::handle_client_request moves the sender into a local before awaiting peer_tx.send() for the request's wire message, and only stores it into State::AwaitingResponse after the send completes; a timeout or send error resolves the sender correctly, but task cancellation does not - if the connection task is aborted mid-send, the local sender is dropped unresolved and the assertion fires. The release profile sets panic = "abort", so the assertion terminates the process. Dropping a Client aborts its connection task, and while syncing the peer set treats empty or missing FindBlocks/FindHeaders replies as stalls, removing a peer after three consecutive stalls - so a malicious peer can time its removal against a blocked socket write. This maps to CWE-617 (Reachable Assertion) layered on CWE-362 (Race Condition): the root cause is a request-lifecycle ownership defect, not the stall tracker, and any path that drops a Client while its connection is suspended in an outbound send has the same effect. The fix in 7.0.0 has the connection own the response sender for the whole send (Connection::sending_request_tx) and resolves it with an error in Connection::shutdown if the task was cancelled mid-send, backed by a regression test for cancellation during a parked send.

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 8.2 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Unauthenticated remote peer (AV:N/PR:N/UI:N) but a timing race gates the trigger (AC:H); impact is process abort only, so A:H with C:N/I:N and no scope change.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:P/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
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Nov 08, 2026 - 03:01 EUVD
CVE Published
Nov 08, 2026 - 01:37 cve.org
HIGH 8.2

DescriptionCVE.org

ZcashFoundation Zebra zebrad before 7.0.0 contains a reachable assertion race condition that allows unauthenticated remote peers to abort the node by triggering disconnection during a blocked outbound send. Malicious peers can return empty FindBlocks or FindHeaders replies and stop reading their socket, dropping an unresolved MustUseClientResponseSender and terminating syncing nodes.

Technical POC Analysis

CWE-617 (Reachable Assertion), racing with CWE-362 (Race Condition).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A denial-of-service vulnerability in Zcash Foundation's Zebra node software (zebrad) allows unauthenticated remote attackers to crash the node with a single crafted peer connection. Organizations running affected Zebra versions in production-particularly those providing blockchain infrastructure or relying on Zebra for Zcash network participation-face service outages that halt transaction relay and RPC availability until manual restart, impacting dependent applications and users.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict P2P access to trusted peers via firewall/ACL, deploy monitoring and auto-restart for zebrad processes, and isolate affected nodes from critical network segments.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Low
Zebra is a niche alternative Zcash node implementation, small operator base
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
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.

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