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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →