Description
ZEBRA is a Zcash node written entirely in Rust. Prior to 4.5.0, an unauthenticated P2P peer can cause the mempool download pipeline to retain transactions after verification reaches the outer RATE_LIMIT_DELAY timeout. In zebrad/src/components/mempool/downloads.rs, Downloads::poll_next removed cancel_handles entries after success and ordinary verification errors, but tokio::time::error::Elapsed did not carry the UnminedTxId needed to remove the timed-out entry. Each retained cancel_handles entry could hold a full Gossip::Tx(UnminedTx), while normal mined-transaction cleanup could not match attacker transactions and no periodic garbage collection or count cap existed. Sustained traffic therefore caused monotonic memory growth until swap pressure degraded the node or the operating system terminated the zebrad process for exhausting memory. This issue is fixed in version 4.5.0.
Published: 2026-08-18
Score: 5.3 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is an unbounded memory leak in the Zebra node’s mempool download pipeline. When a transaction verification process times out, the timeout handler fails to remove the corresponding cancel_handle entry, leaving a full transaction object in memory. Continued traffic causes monotonic growth until the operating system terminates the zebrad process due to exhausting available memory. This flaw is a classic denial‑of‑service issue arising from improper memory management, classified as CWE‑401.

Affected Systems

ZcashFoundation Zebra nodes running any version older than 4.5.0 are impacted. The issue exists in the component responsible for handling incoming peer transactions and does not require privileged access or authentication to exploit.

Risk and Exploitability

The CVSS score of 5.3 indicates moderate severity, and the EPSS score is unavailable, so the likelihood of exploitation is uncertain. The vulnerability can be triggered by any unauthenticated P2P peer, meaning an attacker can connect to a zebra node over the network, send arbitrary transactions, then cease transmission to force the timeout path. Sustained malicious traffic can cause memory growth to the point of node termination, disrupting the service or surrounding infrastructure. The issue is not listed in the CISA KEV catalog, but its nature warrants immediate mitigation for nodes exposed to the public P2P network.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Zebra node to version 4.5.0 or later to remove the memory leak
  • If an upgrade is not possible immediately, limit inbound P2P connections to trusted peers using firewall rules or a peer whitelist
  • Configure resource limits (cgroups, memory capping, or swap thresholds) and monitor memory usage so the process can be restarted before the operating system terminates it

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-65jj-fmw8-468q zebrad has unbounded memory leak in mempool download pipeline via timeout path cancel_handles retention
History

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

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

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, an unauthenticated P2P peer can cause the mempool download pipeline to retain transactions after verification reaches the outer RATE_LIMIT_DELAY timeout. In zebrad/src/components/mempool/downloads.rs, Downloads::poll_next removed cancel_handles entries after success and ordinary verification errors, but tokio::time::error::Elapsed did not carry the UnminedTxId needed to remove the timed-out entry. Each retained cancel_handles entry could hold a full Gossip::Tx(UnminedTx), while normal mined-transaction cleanup could not match attacker transactions and no periodic garbage collection or count cap existed. Sustained traffic therefore caused monotonic memory growth until swap pressure degraded the node or the operating system terminated the zebrad process for exhausting memory. This issue is fixed in version 4.5.0.
Title ZEBRA: Unbounded memory leak in mempool download pipeline via timeout path cancel_handles retention
Weaknesses CWE-401
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L'}


Subscriptions

Zcashfoundation Zebra
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-18T19:19:56.546Z

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

Link: CVE-2026-52734

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-52734

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T22:15:04Z

Weaknesses
  • CWE-401

    Missing Release of Memory after Effective Lifetime