CVE-2026-86039: libp2p: PeerStore accepts attacker-signed PeerRecords for a victim peer ID and stores certified attacker addresses
@libp2p/peer-store accepts a signed PeerRecord whose envelope is signed by one peer but whose payload claims a different peer ID. The vulnerable consumePeerRecord path verifies the envelope signature, but does not verify that the envelope signer is the same peer as the wrapped PeerRecord.peerId. As a result, an attacker can sign a record with their own key while placing a victim peer ID in the payload, causing attacker-controlled multiaddrs to be stored as certified addresses for the victim.
References
- github.com/advisories/GHSA-vrf4-mx87-p53w
- github.com/libp2p/js-libp2p/commit/3bf5d395cbca1488eea6e87cd771e4613b661c30
- github.com/libp2p/js-libp2p/pull/3570
- github.com/libp2p/js-libp2p/releases/tag/peer-store-v12.0.24
- github.com/libp2p/js-libp2p/security/advisories/GHSA-vrf4-mx87-p53w
- nvd.nist.gov/vuln/detail/CVE-2026-86039
Code Behaviors & Features
Detect and mitigate CVE-2026-86039 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →