Description
ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a remote unauthenticated P2P peer can stall a Zebra node by racing an invalid block body against the valid canonical body for the same block header hash. ZIP-244 permits the attacker to mutate coinbase scriptSig authentication data while retaining the transaction identifiers, merkle root, and block header hash, so the poisoned body fails later commitment validation but shares the canonical hash. In zebra-state/src/service.rs, queue_and_commit_to_non_finalized_state recorded the hash in non_finalized_block_write_sent_hashes before contextual validation completed and did not remove it when the write task rejected the body. When the honest body later arrived, the cached hash caused KnownBlock::WriteChannel duplicate handling to suppress it, leaving the node stuck one height behind until restart or reorganization. This issue is fixed in version 4.5.0.
Published: 2026-08-18
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability allows a remote, unauthenticated P2P peer to stall a Zebra node by racing an invalid block body against the true canonical body for the same block header hash. ZIP‑244 permits the attacker to modify the coinbase scriptSig authentication data while leaving the transaction identifiers, merkle root, and header hash unchanged; the poisoned body later fails commitment validation yet shares the canonical hash. In Zebra, the hash is logged as a sent hash before contextual validation completes and is not removed when the write fails, so when the honest body arrives, the cached hash suppresses it. The result is the node being stuck one height behind until a restart or reorganization. This is a clear denial‑of‑service scenario, directly impacting node availability and network participation.

Affected Systems

ZcashFoundation Zebra node, all releases prior to 4.5.0. The fix is included in v4.5.0 and later. Systems running these earlier versions are vulnerable.

Risk and Exploitability

The CVSS score of 8.7 categorises the problem as high severity. EPSS is not available, and the vulnerability is not listed in CISA’s KEV catalog, indicating it has not yet been observed in widespread exploitation. However, the attack requires only a malicious peer in the Zebra P2P network and no special privileges, making it relatively easy for an attacker operating within or controlling a network node to execute. The likely attack path is via the untrusted P2P layer, with the attacker sending a poisoned block body that befits the same header hash. Because the node will stall until restart, an attacker could use this to disrupt node operation, hindering network performance.

Generated by OpenCVE AI on August 18, 2026 at 20:32 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Zebra to version 4.5.0 or newer to apply the patch that removes the cached hash upon failed validation.
  • If immediate upgrade is not possible, limit the set of connected peers by whitelisting trusted peers or using firewall rules to block anonymous peers, reducing the attack surface.
  • Monitor node height and automatically restart or reorganise the chain when progress halts, ensuring the node recovers quickly after a stall.

Generated by OpenCVE AI on August 18, 2026 at 20:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4m69-67m6-prqp Zebra has block suppression via NU5 same-header body poisoning of sent-hash cache
History

Tue, 18 Aug 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Zcashfoundation
Zcashfoundation zebra
Vendors & Products Zcashfoundation
Zcashfoundation zebra

Tue, 18 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 18 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Description ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, a remote unauthenticated P2P peer can stall a Zebra node by racing an invalid block body against the valid canonical body for the same block header hash. ZIP-244 permits the attacker to mutate coinbase scriptSig authentication data while retaining the transaction identifiers, merkle root, and block header hash, so the poisoned body fails later commitment validation but shares the canonical hash. In zebra-state/src/service.rs, queue_and_commit_to_non_finalized_state recorded the hash in non_finalized_block_write_sent_hashes before contextual validation completed and did not remove it when the write task rejected the body. When the honest body later arrived, the cached hash caused KnownBlock::WriteChannel duplicate handling to suppress it, leaving the node stuck one height behind until restart or reorganization. This issue is fixed in version 4.5.0.
Title ZEBRA: Block suppression via NU5 same-header body poisoning of sent-hash cache
Weaknesses CWE-459
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Zcashfoundation Zebra
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-18T19:38:44.395Z

Reserved: 2026-06-08T14:00:43.572Z

Link: CVE-2026-52736

cve-icon Vulnrichment

Updated: 2026-08-18T19:38:30.293Z

cve-icon NVD

Status : Received

Published: 2026-08-18T20:17:17.400

Modified: 2026-08-18T20:17:17.400

Link: CVE-2026-52736

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T20:45:04Z

Weaknesses