Description
libp2p-rust is the official rust language Implementation of the libp2p networking stack. Prior to version 0.49.4, 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. This issue has been patched in version 0.49.4.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| libp2p | rust-libp2p | < 0.49.4 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | libp2p-gossipsub | < 0.49.4 | 0.49.4 | GHSA-xqmp-fxgv-xvq5 |
| crates.io | libp2p-gossipsub | >= 0.0.0-0, < 0.49.4 | 0.49.4 | RUSTSEC-2026-0537 |