Description
py-libp2p is the Python implementation of the libp2p networking stack. In 0.7.0 and earlier, the yamux handle_incoming() method in libp2p/stream_muxer/yamux/yamux.py reads an attacker-controlled 32-bit DATA frame length with read_exactly() before validating it against MAX_WINDOW_SIZE or checking whether stream_id exists. A peer that completes the standard Noise handshake can send a 12-byte frame declaring a 0xFFFFFFFF body and then withhold the body, causing the sequential yamux read loop used by the default new_host() configuration to block and preventing every stream on that connection from making progress. No fixed version is available as of this review.
Published: 2026-08-13
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in py-libp2p’s yamux stream multiplexer, where the handle_incoming() routine reads a 32‑bit data frame length before validating that length or ensuring the stream ID is valid. An attacker can craft a noise‑handshake connection and send a 12‑byte frame that claims a 0xFFFFFFFF body followed by no payload. The yamux loop blocks waiting for the non‑existent data, freezing all streams on that connection and effectively denying service to the application using the library.

Affected Systems

The affected product is the libp2p Python implementation, first released as py-libp2p. Versions 0.7.0 and earlier are impacted. No vendor has released a patched release as of the last advisory.

Risk and Exploitability

With a CVSS score of 7.5 and no EPSS data, the DoS impact is moderate to high. The attack requires remote network access that can complete the Noise handshake, then send the oversized frame. The attack can be carried out by a remote actor with network reachability; the vendor does not list this in CISA KEV. The exploitation path is straightforward and does not require privileged access, suggesting a potentially wide attack surface.

Generated by OpenCVE AI on August 13, 2026 at 18:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade py-libp2p to a version newer than 0.7.0 that contains the yamux patch if available; otherwise, use a maintained fork that implements the fix
  • If an upgrade is not yet possible, block or rate‑limit inbound connections to the application to reduce exposure to maliciously crafted yamux frames and monitor logs for anomalous large data frame attempts
  • Replace or disable the default yamux stream multiplexing and introduce length‑check validation before reading frames in client code

Generated by OpenCVE AI on August 13, 2026 at 18:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-hmj8-5xmh-5573 libp2p: yamux connection DoS via oversized data frame
History

Fri, 14 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Libp2p
Libp2p libp2p
Vendors & Products Libp2p
Libp2p libp2p

Thu, 13 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Thu, 13 Aug 2026 17:45:00 +0000

Type Values Removed Values Added
Description py-libp2p is the Python implementation of the libp2p networking stack. In 0.7.0 and earlier, the yamux handle_incoming() method in libp2p/stream_muxer/yamux/yamux.py reads an attacker-controlled 32-bit DATA frame length with read_exactly() before validating it against MAX_WINDOW_SIZE or checking whether stream_id exists. A peer that completes the standard Noise handshake can send a 12-byte frame declaring a 0xFFFFFFFF body and then withhold the body, causing the sequential yamux read loop used by the default new_host() configuration to block and preventing every stream on that connection from making progress. No fixed version is available as of this review.
Title py-libp2p: yamux connection DoS via oversized data frame
Weaknesses CWE-400
References
Metrics cvssV3_1

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-13T18:06:37.488Z

Reserved: 2026-08-12T20:53:46.381Z

Link: CVE-2026-73568

cve-icon Vulnrichment

Updated: 2026-08-13T18:06:08.839Z

cve-icon NVD

Status : Received

Published: 2026-08-13T18:18:19.547

Modified: 2026-08-13T19:17:35.323

Link: CVE-2026-73568

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-14T10:00:03Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption