Read the docs
TI-2026-58864 Aliases CVE-2026-86038GHSA-c3gv-825q-fvmp

libp2p: Gossipsub StrictSign accepts attacker-signed messages as a victim RSA peer ID

Priority HIGH 72CWE-345Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Security bypass
Confidentiality · integrity · availability
None · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-345.

Summary

libp2p is a JavaScript implementation of the libp2p networking stack. From 15.0.0 until 16.0.5, @libp2p/gossipsub uses the default StrictSign policy in packages/gossipsub/src/utils/buildRawMessage.ts, where validateToRawMessage verifies a signature with attacker-controlled msg.key but skips binding that key to msg.from when the claimed author is an RSA peer ID that does not inline a public key. An unauthenticated attacker can place a victim RSA peer ID in msg.from, sign the message with the attacker's private key, and supply the attacker's public key in msg.key, causing the message to be accepted and propagated as authored by the victim. Applications that trust message.from for validators, authorization, accounting, moderation, reputation, or audit logging can process attacker-controlled data under false origin attribution. The issue is fixed in version 16.0.5.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00193 8th percentileScored 2026-11-07
Fix Fixed js-libp2p (libp2p): 16.0.5@libp2p/gossipsub (npm): 16.0.5

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
libp2pjs-libp2p15.0.0 to before 16.0.516.0.5Patch availableCNA
—@libp2p/gossipsub (npm)15.0.0 to before 16.0.516.0.5Patch availableGHSA-c3gv-825q-fvmp
  • js-libp2p Vendorlibp2p Affected 15.0.0 to before 16.0.5 Fixed in 16.0.5 Patch available CNA
  • @libp2p/gossipsub (npm) Vendor— Affected 15.0.0 to before 16.0.5 Fixed in 16.0.5 Patch available GHSA-c3gv-825q-fvmp

Remediation

  • Fix · CNA js-libp2p (libp2p) Fixed in 16.0.5
  • Fix · GHSA-c3gv-825q-fvmp @libp2p/gossipsub (npm) Fixed in 16.0.5 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-86038
  2. 2026-10-03 Alias added: GHSA-c3gv-825q-fvmp

References

  • TI-2026-60386 libp2p-rendezvous through 0.17.1 Denial of Service via Unbounded Registration TTL in Discovery Responses CVSS 4.0HIGH 8.7
  • TI-2026-58865 libp2p: PeerStore accepts attacker-signed PeerRecords for a victim peer ID and stores certified attacker addresses CVSS 3.1HIGH 8.2
  • TI-2026-44102 libp2p-quic: Remote panic via certificate expiry race during QUIC handshake CVSS 4.0HIGH 8.2
  • TI-2026-27587 libp2p-rust has unbounded rendezvous DISCOVER cookies enable remote memory exhaustion CVSS 3.1HIGH 8.2
  • TI-2026-53982 libp2p: Circuit relay v2 server reservation refresh leaks abort listeners and allows remote resource exhaustion CVSS 3.1HIGH 7.5
  • TI-2026-51658 py-libp2p: yamux connection DoS via oversized data frame CVSS 3.1HIGH 7.5
See all 26 →

Sources