Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker connects to Nimiq node
-
DeliveryOpens 1000 concurrent substreams
-
ExploitSends partial frames without closing streams
-
ExecutionTarget node's read_to_end() blocks on each stream
-
PersistStalled streams accumulate and exhaust resources
-
ImpactNode becomes unresponsive to legitimate peers
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 vulnerability requires only that the target node is running nimiq-libp2p version prior to 1.3.0 and is connected to the attacker on the Nimiq libp2p network. No special configuration, feature flag enablement, or non-default settings are required - the vulnerability is inherent to the library's default behavior. The attacker must be able to establish libp2p connections to the target node (which is the normal operational mode for Nimiq nodes); no privileged access or authentication is needed. The attack is limited only by the per-connection resource budget and the attacker's ability to maintain concurrent connections. |
| Impact | CVSS 5.3 with network vector (AV:N/AC:L/PR:N/UI:N) and low confidentiality/integrity impact but availability impact (A:L) accurately reflects this as a classic resource exhaustion denial of service. EPSS data not provided; however, the attack is trivial to execute - no authentication, no user interaction, and low complexity. The vulnerability affects all Nimiq nodes running libp2p prior to 1.3.0, creating a direct attack surface for anyone running a Nimiq node on the network. The availability impact is bounded (A:L suggests partial degradation rather than complete loss) because the node can still function under attack, but coordinated attacks from multiple malicious peers can cumulatively exhaust resources. KEV status not provided, but the public GitHub advisory and commit fix suggest vendor awareness. Real-world risk is moderate to high for Nimiq network operators because this is a direct remote DoS against any unpatched node, requiring no sophisticated exploitation. |
| Exploit ScenarioDerived | An attacker operating a malicious Nimiq network peer opens 1000 concurrent substreams to a target node and sends a single partial frame on each without closing the streams. The target node's |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 23, 2026
Denial of service in nimiq-libp2p prior to version 1.3.0 allows remote peers to exhaust node resources by sending partial frames on inbound substreams and keeping them open. The vulnerability combines unbounded stream reading via read_to_end() with a high concurrent stream limit of 1000, enabling attackers to accumulate stalled slots and degrade network availability without authentication or user interaction.
RemediationAI
Upgrade nimiq-libp2p to version 1.3.0 or later immediately. The vendor-released patch (commit c021a5337b808c73571b44999f9753051bac7508, tagged as v1.3.0) fixes the unbounded stream reading and concurrent stream limits. Update Cargo.toml or equivalent package manifest to pin nimiq-libp2p >= 1.3.0 and run cargo update. No workarounds are available per the vendor advisory; patching is the only mitigation. Network operators should prioritize this update to prevent exploitation by peers on the Nimiq network.
Affected VersionsENISA
Affected Packages
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
nimiq-libp2p is a Rust-based networking library implementing the Nimiq blockchain protocol atop libp2p. The vulnerability exists in the MessageCodec implementation, specifically in the read_request() and read_response() methods, which call read_to_end() on inbound substreams. This design flaw means the codec will block indefinitely waiting for stream closure when a peer sends a partial frame without completing the transmission. The Behaviour::new() constructor exacerbates this by setting with_max_concurrent_streams(1000), far exceeding libp2p's default concurrency limits. Under CWE-770 (Allocation of Resources Without Limits or Throttling), this allows attackers to accumulate many partially-read streams, consuming connection state and memory until the node becomes unresponsive.
Know when Network 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
nimiq-libp2p is a Nimiq network implementation based on libp2p. Prior to version 1.3.0, MessageCodec::read_request and read_response call read_to_end() on inbound substreams, so a remote peer can send only a partial frame and keep the substream open. because Behaviour::new also sets with_max_concurrent_streams(1000), the node exposes a much larger stalled-slot budget than the library default. The patch for this vulnerability is formally released as part of v1.3.0. No known workarounds are available.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-25056
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB