Description
libp2p is a JavaScript Implementation of libp2p networking stack. Prior to 16.0.0, @libp2p/gossipsub defaultDecodeRpcLimits set maxIhaveMessageIDs and maxIwantMessageIDs to Infinity, allowing oversized IHAVE and IWANT control message arrays in message/decodeRpc.ts and gossipsub.ts to synchronously iterate roughly 180,000 message IDs per 4 MB frame and block the Node.js event loop. This issue is fixed in version 16.0.0.
Published: 2026-07-08
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability allows an entity that can send Gossipsub control messages to inject oversized IHAVE or IWANT arrays that cause the node to process each element synchronously. This loop can handle roughly 180,000 identifiers in a 4 MB frame, consuming a large amount of CPU time and blocking the Node.js event loop, which results in a denial‑of‑service of the application. This weakness is classified as CWE‑770. The attack leads to loss of availability but does not compromise data confidentiality or integrity.

Affected Systems

All installations of the libp2p JavaScript library that use the default @libp2p/gossipsub plugin before version 16.0.0 are affected. This includes projects that import libp2p:js-libp2p or downstream modules that rely on it for peer‑to‑peer messaging. Only releases prior to v16.0.0 of the gossipsub component contain the unbounded decoding limits that allow the attack.

Risk and Exploitability

The CVSS score of 7.5 indicates a moderate‑to‑high availability impact while the EPSS score of less than 1% suggests that exploitation is unlikely at present, and the vulnerability is not listed in CISA's KEV catalog. The likely attack vector is remote: based on the description it is inferred that an adversary who can establish a Gossipsub connection can transmit an oversized IHAVE or IWANT message. The exploit requires no privileged state or special access, which means any peer that connects to the vulnerable node could initiate the denial‑of‑service.

Generated by OpenCVE AI on July 29, 2026 at 13:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade libp2p to version 16.0.0 or later.
  • Ensure that any downstream dependencies that import @libp2p/gossipsub use the patched version.
  • If immediate upgrade is not possible, configure custom decodeRpcLimits to set maxIhaveMessageIDs and maxIwantMessageIDs to reasonable lower values, preventing excessive iteration during decoding.

Generated by OpenCVE AI on July 29, 2026 at 13:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cwc9-cp4j-mcvv libp2p: CPU DoS via oversized IHAVE and IWANT control message arrays
History

Fri, 10 Jul 2026 09:30:00 +0000

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

Thu, 09 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 08 Jul 2026 21:15:00 +0000

Type Values Removed Values Added
Description libp2p is a JavaScript Implementation of libp2p networking stack. Prior to 16.0.0, @libp2p/gossipsub defaultDecodeRpcLimits set maxIhaveMessageIDs and maxIwantMessageIDs to Infinity, allowing oversized IHAVE and IWANT control message arrays in message/decodeRpc.ts and gossipsub.ts to synchronously iterate roughly 180,000 message IDs per 4 MB frame and block the Node.js event loop. This issue is fixed in version 16.0.0.
Title libp2p: CPU DoS via oversized IHAVE and IWANT control message arrays
Weaknesses CWE-770
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-07-09T14:40:44.919Z

Reserved: 2026-06-01T22:03:19.641Z

Link: CVE-2026-49866

cve-icon Vulnrichment

Updated: 2026-07-09T14:38:00.852Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-29T13:30:06Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling