Skip to main content

rust-libp2p Gossipsub EUVDEUVD-2026-102898

| CVE-2026-95859 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-16 GitHub_M
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect to Gossipsub listener as peer
  2. Delivery
    Send GRAFT with novel topic hashes
  3. Exploit
    Unsubscribed topics added to connected_peer.topics
  4. Execution
    Repeat to force cumulative memory growth
  5. Impact
    Exhaust process memory, denial of service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The target node must be running the libp2p-rust Gossipsub protocol (protocols/gossipsub) at a version prior to 0.49.5 and expose a Gossipsub listener reachable by the attacker; no authentication, user interaction, or non-default configuration is required, since the vulnerable GRAFT handling is part of default control-message processing. The specific prerequisite is reachability of a Gossipsub-enabled endpoint - a node that does not run Gossipsub or is not network-reachable by the attacker is not affected. The only practical limiting factor is network exposure of the Gossipsub listener; subscription filters, peer scoring, and per-message size limits do NOT constrain the growth and therefore provide no mitigation.

Impact

This is a genuine, actionable availability risk rather than an inflated high-score issue. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) is fully consistent with the description: a remote, unauthenticated peer that can reach a Gossipsub listener can trigger the flaw with no special timing or preconditions (AC:L, AT:N), and impact is availability-only (VA:H, VC:N/VI:N) - matching CWE-770 uncontrolled resource consumption leading to memory exhaustion and denial of service. All signals agree on scope: there is no confidentiality or integrity impact and no scope change to subsequent systems, so the 8.7 score is driven entirely by the ease and reliability of the DoS, which is appropriate. No EPSS score, no CISA KEV listing, and no public exploit are present in the input, so exploitation probability cannot be quantified; however, the fixing PR diff (libp2p/rust-libp2p#6608) publicly documents the exact unbounded-growth logic in connected_peer.topics, which materially lowers the effort to reproduce even though it is not itself weaponized exploit code. Net: treat as a real patching priority for any node exposing a Gossipsub listener, but note the impact ceiling is service disruption, not compromise.

Exploit ScenarioDerived

A remote unauthenticated peer connects to a node running libp2p-rust Gossipsub (version < 0.49.5) and repeatedly sends GRAFT control messages each referencing novel, never-subscribed topic hashes. Because the handler inserts every attacker-supplied topic into the per-peer connected_peer.topics set without verifying prior subscription, and this growth is bounded by neither subscription filters, peer scoring, nor per-message size limits, sustained GRAFT flooding drives cumulative per-peer memory growth until the process exhausts memory and crashes. No public exploit is identified at time of analysis, though the fixing PR publicly describes the vulnerable code path.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Remote unauthenticated denial of service in rust-libp2p Gossipsub affects versions prior to 0.49.5 and allows any peer that can reach a Gossipsub listener to repeatedly send novel GRAFT topic hashes. The handler unconditionally records those attacker-supplied topics in the per-peer connected_peer.topics map, so memory grows cumulatively without being bounded by subscription filters, peer scoring, or per-message size limits, eventually exhausting process memory and taking the node down. No public exploit identified at time of analysis; the issue is availability-only (CVSS 4.0 8.7 / assessed CVSS 3.1 7.5), and reachability of the Gossipsub listener is the practical prerequisite.

RemediationAI

Upgrade to libp2p-gossipsub v0.49.5 or a rust-libp2p release that includes it; vendor-released patch: 0.49.5, with the fix documented in GHSA-g3g5-x568-qvqx and the referenced commit 51ed5f00e1b0620ded3444ecadf18477052148ea. If immediate upgrade is not possible, reduce exposure of the Gossipsub listener to trusted network peers only via ACLs or firewall rules, or disable Gossipsub where the node does not require it; these are compensating controls because subscription filters, peer scoring, and per-message size limits do not bound the vulnerable growth. Trade-offs: restricting reachability reduces peer discovery and connectivity and may fragment the gossip mesh, while disabling Gossipsub removes pubsub functionality for that node.

Affected VersionsENISA

rust-libp2p < 0.49.5

Affected Packages

euvd rust_libp2p fix: 0.49.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is in the Gossipsub protocol implementation of rust-libp2p, specifically GRAFT control-message processing. GRAFT is used in Gossipsub mesh maintenance to request addition to a peer's mesh for a topic; in vulnerable versions the handler inserted each received topic hash into connected_peer.topics without first verifying the sending peer had a recorded subscription to that topic. This is CWE-770 (Allocation of Resources Without Limits or Throttling): the per-peer topic set can grow with every novel topic hash an attacker sends, and because the data is stored per connected peer, repeated messages produce cumulative memory consumption that is not capped by peer scoring, subscription filters, or message-size limits. The fix in 0.49.5 changes the handler to discard GRAFTs for topics the local node has not subscribed to, and only retain legitimate subscriptions; the advisory GHSA-g3g5-x568-qvqx and commit 51ed5f00e1b0620ded3444ecadf18477052148ea document the correction.

Know when Libp2P gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated peer reaching a Gossipsub listener needs no privileges or interaction (AV:N/AC:L/PR:N/UI:N); impact is memory-exhaustion DoS only, so C:N/I:N/A:H with unchanged scope.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 16, 2026 - 16:32 EUVD
CVE Published
Oct 16, 2026 - 15:19 cve.org
HIGH 8.7

DescriptionCVE.org

libp2p-rust is the official Rust language implementation of the libp2p networking stack. Prior to 0.49.5, Gossipsub GRAFT control-message handling unconditionally adds attacker-supplied topic hashes to connected_peer.topics without confirming that the peer previously subscribed to those topics. A remote unauthenticated peer that can reach a Gossipsub listener can repeatedly send novel GRAFT topics, causing cumulative per-peer memory growth that is not bounded by subscription filters, peer scoring, or per-message size limits. This can exhaust process memory and cause a denial of service. This issue is fixed in version 0.49.5.

Technical POC Analysis

CWE-770: Allocation of Resources Without Limits or Throttling.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Organizations operating peer-to-peer services built on rust-libp2p release 0.49.5 and earlier are exposed to a memory-exhaustion condition in the Gossipsub message handler that can be triggered by any network peer able to reach an open Gossipsub listener, degrading or taking individual nodes offline. Because the condition is availability-only and reachable over the network without pre-existing trust, teams running public-facing blockchain, decentralized storage, or other libp2p-based infrastructure should treat unplanned node outages as a plausible business disruption rather than a theoretical risk. Leadership attention is warranted because no vendor-released patch is currently flagged in our tracking data, leaving exposure management dependent on network controls and monitoring in the near term.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict Gossipsub listener reachability to allowlisted peers via firewall or network policy, segment public-facing libp2p nodes from internal services, monitor and alert on unbounded process memory growth with automated node recycling, rate-limit or block GRAFT-heavy peer traffic at the network edge, and reduce node blast radius by capping the number of nodes sharing a single failure domain. Exploitation status: no public exploit identified at time of analysis.

Threat Intelligence Overview

Prevalence
Medium
core Rust P2P networking library, common in web3/blockchain nodes, not universal
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Libp2P

View all
CVE-2026-89146 HIGH POC
8.7 Sep 11

Denial-of-service in libp2p-rendezvous ≤0.17.1 (Rust) allows a malicious rendezvous server to crash any connecting clien

CVE-2026-86039 HIGH POC
8.2 Sep 17

Address-book poisoning in the @libp2p/peer-store component of js-libp2p (8.0.0 up to, but not including, 12.0.24) allows

CVE-2023-39533 HIGH POC
7.5 Aug 08

go-libp2p is the Go implementation of the libp2p Networking Stack. Rated high severity (CVSS 7.5), this vulnerability is

CVE-2026-73568 HIGH POC
7.5 Aug 13

Uncontrolled resource consumption in py-libp2p's yamux stream multiplexer allows any remote peer that completes a standa

CVE-2026-86038 HIGH POC
7.5 Sep 17

Forged message authorship in @libp2p/gossipsub 15.0.0 through 16.0.4 lets an unauthenticated, remote attacker sign a gos

CVE-2026-32314 HIGH
8.7 Mar 13

Rust Yamux prior to version 0.13.10 is vulnerable to denial of service when processing specially crafted inbound stream

CVE-2026-103936 HIGH
7.5 Oct 15

Unauthenticated remote denial of service in @libp2p/webrtc (the js-libp2p WebRTC transport) before 6.0.28 lets a single

CVE-2026-86040 HIGH
7.5 Sep 17

Unauthenticated denial of service in @libp2p/floodsub before 11.0.26 (packaged with js-libp2p < 11.0.26) lets a remote p

CVE-2026-77384 HIGH
7.5 Aug 24

Unbounded abort listener accumulation in js-libp2p's circuit-relay-v2 relay server allows any remote peer to exhaust mem

CVE-2023-40583 HIGH
7.5 Aug 25

libp2p is a networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to

CVE-2022-23492 HIGH
7.5 Dec 08

go-libp2p is the offical libp2p implementation in the Go programming language. Rated high severity (CVSS 7.5), this vuln

CVE-2022-23487 HIGH
7.5 Dec 07

js-libp2p is the official javascript Implementation of libp2p networking stack. Rated high severity (CVSS 7.5), this vul

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy