CVE-2026-109366
Executive Summary
CVE-2026-109366 is an improper integrity validation vulnerability (CWE-354) affecting Zcash's Zebra node implementation before version 6.4.0. The flaw resides in the inbound gossip download path, where unauthenticated peers can serve a genuine block whose coinbase scriptSig has been rewritten to height 1 while preserving the ZIP-244 block hash. Because the block's hash still matches the expected identifier, the node drops the block as "behind-tip" before consensus validation and without penalizing the serving peer, delaying tip discovery for mining backends. With a CVSS base score of 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L), the impact is limited to availability — specifically, delays in blockchain tip propagation that degrade mining operations relying on Zebra for fresh block templates.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
Zebra is a Rust-based Zcash node implementation that consumes and propagates blocks over the peer-to-peer gossip network. The download path is responsible for fetching blocks announced by peers, validating their integrity, and queuing them for consensus checks before advancing the local best-chain tip.
The vulnerability class here is improper integrity validation (CWE-354). The NVD description states that the inbound gossip download path fails to sufficiently validate block contents prior to applying a comparison against the current chain tip. An attacker — an unauthenticated peer, since the gossip network accepts connections from anyone — can serve a real block whose coinbase scriptSig has been rewritten to height 1. The critical property is that this rewrite keeps the ZIP-244 block hash intact. In Zcash, the ZIP-244 transaction digest and associated commitment structure allow certain transaction fields (like parts of the coinbase data carried in scriptSig) to be modified without invalidating the commitment tree used to compute the block hash. As a result, the block's identifier still matches what the victim node expects to download, so it passes the integrity/hash check that normally precedes consensus validation.
Once the node accepts this doctored block into the pipeline, it performs a pre-consensus tip comparison. Because the coinbase scriptSig signals height 1, the node interprets the block as being far behind its current tip. It therefore drops the block as "behind-tip" — discarding it before the full consensus validation that would have rejected it as malformed. Critically, the node does not apply a peer penalty for this behavior, so the malicious peer is not disconnected or banned. The legitimate block is thus not delivered to the mining backend, and the node must rediscover and re-download the real tip from another peer. Each successful injection delays tip discovery.
The attack surface is the peer-to-peer ingress: any node accepting inbound gossip connections is exposed. The AC:H (high attack complexity) rating reflects the dependency on crafting the block correctly (preserving the ZIP-244 hash) and the timing needed to interleave with genuine tip propagation and races against honest peers. No authentication (PR:N) or user interaction (UI:N) is required. The vulnerability does not affect confidentiality or integrity (C:N/I:N) — it is an availability-only issue (A:L), consistent with a delay/nuisance-grade denial of timely tip discovery.
The affected version line is all releases before 6.4.0; the vendor has not published a separate advisory in the supplied data, and no patch evidence is corroborated by tracked sources, yielding a patch confidence of 0/4. However, the NVD description itself references "before 6.4.0," which delineates the fix boundary. No CWE-354-specific coding error (post-hash content validation) is described beyond the gossip download path itself, so implementation-level specifics cannot be added without fabrication.
Exploitation Scenarios
Because no public PoC or exploit code exists, the attack chain below is inferred at the vulnerability-class level from the NVD description. No function names, endpoints, or parameters beyond those explicitly stated are asserted.
Reconnaissance / Target Identification. The adversary identifies reachable Zebra nodes below version 6.4.0 that accept inbound peer/gossip connections. This can be enumerated by probing the Zcash P2P service (typically TCP 8233 mainnet) for node version announcements, or passively observing the network for Zebra peers.
Triggering the Flaw Class. The attacker participates as an ordinary peer in the gossip protocol. When a target requests or is expected to fetch the next block at the tip, the attacker supplies a real block — i.e., one that was genuinely mined — but with its coinbase
scriptSigfield rewritten to encode height 1. The rewrite is crafted to preserve the block's ZIP-244-derived hash, so the node's integrity check sees a legitimate block identifier and does not reject it as a hash mismatch.Execution Method (vulnerability-class level). The doctored block is delivered through the same inbound gossip download path used for honest propagation. Because no authentication is required, the peer connection itself needs no credentials. The node admits the block into pre-consensus processing, where it compares the block's apparent height (1, from the rewritten coinbase scriptSig) against its current chain tip. The block is then flagged as "behind-tip" and dropped prior to full consensus validation. No payload injection, memory corruption, or remote code execution mechanism is involved — the entire exploit is malicious protocol data placed on a normal peer channel.
Post-Exploitation Impact. The legitimate block fails to reach the node's downstream consumers (mining backends), delaying tip discovery. The attacker is not penalized — no ban or disconnect occurs — allowing repeated injections from the same or multiple peer identities. The practical effect is sustained or intermittent lag in hashrate direction, degraded block-template freshness for mining backends, and wasted peer-download work as the node rediscovers the true tip. No data is stolen, no chain state is directly corrupted, and consensus safety is not broken.
Because the flaw is an availability/timing issue with high complexity and no demonstrated weaponization, real-world exploitation is currently speculative. No threat actor campaigns or in-the-wild activity are indicated in the supplied data.
Impact Assessment
The CVSS 3.1 vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L grades this as a low-severity availability issue:
- AV:N — exploitable remotely over the network via the gossip channel.
- AC:H — high complexity; success depends on crafting a block that preserves the ZIP-244 hash and winning the timing race against honest block propagation.
- PR:N / UI:N — any unauthenticated peer can attempt it with no user involvement.
- S:U — impact is confined to the vulnerable node, not the broader system.
- C:N / I:N — no confidentiality or integrity impact; block contents are not modified in the canonical chain, only in transit.
- A:L — minor availability impact, manifesting as delayed tip discovery rather than a hard outage.
Business/organizational impact. For cryptocurrency mining operations and mining-pool backends that rely on Zebra for canonical tip data, the primary consequence is operational latency: stale or delayed block templates, potential reduced effective hashrate, and wasted bandwidth as nodes re-download blocks. For infrastructure operators (exchanges, custodians, wallet services) running Zebra nodes for chain-following, the impact is a degraded freshness of chain data, which could affect timely deposit/withdrawal processing if the delay is sustained.
Blast radius. Any internet-reachable Zebra node below 6.4.0 that accepts inbound peers is potentially affected. Nodes behind restrictive firewalls or configured with limited outbound/inbound peer sets reduce exposure. There is no lateral movement or persistence component; the effect is localized to the targeted node's tip-tracking pipeline. Given low severity, high complexity, and no known exploitation, the immediate real-world risk is low, but the unpenalized, repeatable nature of the injection makes it a persistent nuisance vector for mining-focused deployments.
Detection Guidance
Detection centers on anomalous gossip behavior: peers repeatedly serving blocks that are dropped as behind-tip, coinbase scriptSig values inconsistent with the announced block height, and repeated ingest attempts from the same peer without a corresponding ban. Because the flaw is at the protocol-data layer, correlated node-log + network analysis is most effective.
Sigma Rule
title: Zebra Block Dropped as Behind-Tip with Rewritten Coinbase Height
id: 8f2c1a10-1093-66a0-a1b2-0000109366aa
status: experimental
description: Detects Zebra gossip download path events where a received block is dropped as behind-tip despite matching hash, indicating CVE-2026-109366 abuse.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-109366
author: Valters IT Threat Intelligence
date: 2026/06/01
tags:
- attack.t1190
- cve.2026.109366
logsource:
product: zebra
service: node
detection:
selection_msg:
message|contains:
- 'behind-tip'
- 'behind tip'
selection_block:
message|contains: 'dropped'
selection_height:
message|contains:
- 'height 1'
- 'scriptSig'
condition: selection_msg and selection_block and selection_height
fields:
- peer_addr
- block_hash
- message
falsepositives:
- Legitimate reorg handling
- Late block delivery during normal tip races
level: low
YARA Rule
rule CVE_2026_109366_Zebra_Coinbase_ScriptSig_Height1
{
meta:
author = "Valters IT Threat Intelligence"
description = "Detects activity/artifacts related to Zebra behind-tip drop via rewritten coinbase scriptSig (CVE-2026-109366)"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-109366"
date = "2026-06-01"
cve = "CVE-2026-109366"
strings:
$zebra = "zebra" ascii nocase
$behind = "behind-tip" ascii nocase
$behind2 = "behind tip" ascii nocase
$script = "scriptSig" ascii
$zip244 = "ZIP-244" ascii nocase
$height1 = "height 1" ascii nocase
condition:
uint16(0) == 0x5A56 or
($zebra and ($behind or $behind2)) or
($script and ($zip244 or $height1))
}
(YARA is a heuristic textual artifact matcher here; definitive detection should rely on protocol-aware tooling. Node logs and advisory text are the primary artifact surface.)
Suricata IDS Rule
alert tcp $EXTERNAL_NET any -> $HOME_NET 8233 ( \
msg:"CVE-2026-109366 Possible Zebra Gossip Block Injection (behind-tip drop attempt)"; \
flow:established,to_server; \
content:"|24|"; offset:0; depth:1; \
content:"block"; nocase; distance:0; \
content:"scriptSig"; nocase; distance:0; \
classtype:protocol-command-decode; \
reference:cve,2026-109366; \
reference:url,nvd.nist.gov/vuln/detail/CVE-2026-109366; \
sid:2026109366; rev:1; )
Note: Zcash P2P traffic is typically encrypted/opaque at the transport layer depending on negotiated transport; this signature targets decoded or plaintext-captured gossip metadata and should be tuned to the operator's capture visibility.
Elastic Detection
network where
destination.port == 8233 and
(
network.protocol == "zcash" or
network.transport == "tcp"
) and
process.name == "zebrad" and
message : ("behind-tip" or "behind tip" or "scriptSig" or "height 1")
Complementary process/log correlation (recommended where EQL is applied to node logs):
process where
process.name == "zebrad" and
message : ("dropped" and ("behind-tip" or "behind tip"))
Splunk SPL Query
index=zebra sourcetype=zebrad:node ("behind-tip" OR "behind tip" OR "scriptSig" OR "height 1")
| eval suspicious=if((match(_raw,"(?i)behind[ -]?tip") AND match(_raw,"(?i)dropped")),1,0)
| where suspicious=1
| stats count values(peer_addr) as peers values(block_hash) as block_hashes by host
| where count > 3
| sort - count
High-frequency behind-tip drops from a small set of peers are the strongest signal.
Wazuh OSSEC Rule
<group name="zebra,cve-2026-109366,">
<rule id="109366" level="6">
<decoded_as>json</decoded_as>
<field name="program">zebrad</field>
<match>behind-tip|behind tip</match>
<match>dropped</match>
<match>scriptSig|height 1</match>
<description>CVE-2026-109366: Zebra block dropped as behind-tip with rewritten coinbase scriptSig - possible malicious peer block injection.</description>
<mitre>
<id>T1190</id>
</mitre>
<group>cve_2026_109366,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). The NVD description identifies version 6.4.0 as the fix boundary; consult the Zcash/Zebra project for the authoritative release artifact.
Immediate mitigations:
- Where operationally feasible, restrict inbound P2P connectivity to trusted/known peers and limit the peer set to reduce the number of unauthenticated peers able to inject doctored blocks.
- Monitor node logs for repeated "behind-tip" drops of hash-matching blocks and for coinbase
scriptSigheight inconsistencies, and manually ban peers exhibiting them (recall the flaw itself does not apply a penalty). - Increase the number of independent, well-connected peers so that a single malicious peer cannot reliably win the download race. Redundant tip sources (e.g., a secondary, independently operated node or indexer) mitigate the mining-backend delay effect.
- For mining backends, add a secondary confirmation path (independent tip source) before publishing block templates.
Patch / upgrade steps:
- Upgrade Zebra nodes to 6.4.0 or later once the vendor artifact is available and verified from the official Zcash/Zebra distribution channel.
- Validate the upgrade against release notes explicitly addressing gossip-path integrity validation (post-hash content checks and peer penalty behavior).
- Restage nodes incrementally (canary first), watching tip-freshness metrics during rollout.
Long-term hardening:
- Deploy consensus/content validation before tip comparison in any downstream fork or integration, so hash-valid but semantically inconsistent blocks cannot be silently dropped as behind-tip.
- Enforce peer scoring and penalties for serving blocks that fail higher-layer validation.
- Instrument tip-freshness SLOs for mining backends and alert on latency spikes.
- Track the CVE for an official vendor advisory and a coordinated fix commit; re-evaluate severity if exploitation tooling emerges.
References
- NVD — CVE-2026-109366: https://nvd.nist.gov/vuln/detail/CVE-2026-109366
- CWE-354 — Improper Validation of Integrity Check Value: https://cwe.mitre.org/data/definitions/354.html
- Zcash Zebra project (fix boundary: version 6.4.0): https://github.com/ZcashFoundation/zebra
- ZIP-244 — Transaction Identifier and Signature Hash (Zcash): https://zips.z.cash/zip-0244
- CISA KEV Catalog (not listed as of this report): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
No public PoC, exploit code, Nuclei template, or evidence of in-the-wild exploitation or named threat-actor campaigns was identified in the supplied data at the time of writing.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.