Zero Day MonitorZDM
DashboardVulnerabilitiesTrendingZero-DaysNews
Login
ImpressumPrivacy Policy
Zero Day Monitor © 2026
2139 articles · 105948 vulns · 36/41 feeds (7d)
← Back to list
—
CVE-2026-34219PATCHED
rust · libp2p-gossipsub

libp2p-gossipsub: Remote crash via unchecked Instant overflow in heartbeat backoff expiry handling

Description

## Description ### Summary The Rust libp2p Gossipsub implementation contains a remotely reachable panic in `backoff` expiry handling. After a peer sends a crafted `PRUNE` control message with an attacker-controlled, near-maximum `backoff` value, the value is accepted and stored as an `Instant` near the representable upper bound. On a later heartbeat, the implementation performs unchecked `Instant + Duration` arithmetic (`backoff_time + slack`), which can overflow and panic with: `overflow when adding duration to instant` This issue is reachable from any Gossipsub peer over normal `TCP + Noise + mplex/yamux` connectivity and requires no further authentication beyond becoming a protocol peer. ### Attack Scenario An attacker that can establish a libp2p Gossipsub session with a target node can crash the target by sending crafted `PRUNE` control data: 1. Establish a standard libp2p session (`TCP + Noise`) and negotiate a stream multiplexer (`mplex`/`yamux`). 2. Open a Gossipsub stream and send an RPC containing `ControlPrune` with a very large `backoff` (chosen near boundary conditions, e.g. `~ i64::MAX - victim_uptime_seconds`; example observed: `9223372036854674580` for ~28h uptime). 3. The value is parsed from protobuf and passed through `Behaviour::handle_prune()` into mesh/backoff update logic. 4. Initial storage path uses checked addition (`Instant::now().checked_add(...)`), so the malicious near-max value is retained. 5. On the next heartbeat (typically within ~43–74s), expiry logic computes `backoff_time + slack` using unchecked addition, which overflows and panics. ### Impact Remote unauthenticated denial of service (critical). Any application exposing an affected `libp2p-gossipsub` listener can be crashed by a network-reachable peer that sends crafted `PRUNE` backoff values. The crash is triggered during heartbeat processing (not immediately at PRUNE parse time), and can be repeated by reconnecting and replaying the message. ### Differences from CVE-2026-33040 This advisory is related to CVE-2026-33040 but it is not the same defect. CVE-2026-33040 addressed overflow during backoff insertion by adding checked arithmetic when converting PRUNE backoff into an Instant. The issue in this advisory occurs at a different location and at a different time: a near-maximum backoff can still be stored successfully, and the crash happens later in the heartbeat path when slack is added to that stored Instant using unchecked arithmetic. This report covers a distinct secondary overflow path in heartbeat expiry handling that remained reachable after the original insertion-side hardening. This vulnerability was originally reported by the Security team of the Ethereum Foundation.

Affected Products

VendorProductVersions
rustlibp2p-gossipsubrust/libp2p-gossipsub: < 0.49.4

References

  • https://github.com/advisories/GHSA-xqmp-fxgv-xvq5(advisory)
  • https://github.com/libp2p/rust-libp2p/security/advisories/GHSA-xqmp-fxgv-xvq5
  • https://github.com/advisories/GHSA-gc42-3jg7-rxr2
  • https://github.com/advisories/GHSA-xqmp-fxgv-xvq5

Related News (1 articles)

Tier C
VulDB2h ago
CVE-2026-34219 | libp2p-gossipsub prior 0.49.4 denial of service
→ No new info (linked only)
CISA KEV❌ No
Actively exploited❌ No
Patch availablelibp2p-gossipsub@0.49.4
CWECWE-190, CWE-617
PublishedMar 30, 2026
Last enriched2h agov2
Tags
GHSA-xqmp-fxgv-xvq5rustCVE-2026-34219
Trending Score27
Source articles1
Independent1
Info Completeness8/14
Missing: cvss, epss, kev, exploit, iocs, mitre_attack

Community Vote

0
Login to vote
0 upvotes0 downvotes
No votes yet

Related CVEs (4)

HIGHCVE-2026-34377
Zebra has a Consensus Failure due to Improper Verification of V5 Transactions
Trending: 27
MEDIUMPRE-CVE
Apollo Router Core: Browser Bug Enables Bypass of XS-Search Prevention via Read-Only Cross-Site Request Forgery
CRITICALCVE-2026-34202
Zebra node crash — V5 transaction hash panic (P2P reachable)
CRITICALPRE-CVE
mpp has multiple payment bypass and griefing vulnerabilities

Pin to Dashboard

Verification

State: unverified
Confidence: 0%

Vulnerability Timeline

CVE Published
Mar 30, 2026
Patch Available
Mar 30, 2026
Discovered by ZDM
Mar 30, 2026
Updated: tags
Mar 30, 2026

Version History

v2
Last enriched 2h ago
v2Tier C2h ago

Added new tag: CVE-2026-34219.

tags
via VulDB
v111h ago

Initial creation