Loading...
Skip to main content

CVE-2026-61544 — Vulnerability in libp2p-quic — CVE Details

HIGH

libp2p-quic: Remote panic via certificate expiry race during QUIC handshake

Published September 15, 2026Updated September 15, 2026Source: osv

Summary

### Summary `libp2p-quic` can panic on an inbound QUIC handshake if a malicious peer presents a valid, short lived libp2p TLS certificate and delays the final TLS 1.3 handshake fragment until the certificate expires. This is remotely reachable by a network peer and can crash applications exposing a libp2p QUIC listener. ### Details During the TLS handshake, `libp2p-tls` parses and validates the peer certificate. After Quinn reports handshake completion, `libp2p-quic` re-parses the same certificate in the post-handshake upgrade path and assumes this cannot fail: https://github.com/libp2p/rust-libp2p/blob/969b707bf1177ebebd1febc285c3fd22793b95c5/transports/quic/src/connection/connecting.rs#L65-L66 However, `libp2p_tls::certificate::parse()` re-runs certificate verification on every call, including a wall-clock validity check. A certificate that was valid during the first handshake time parse can expire before the second post-handshake parse, causing the `expect(...)` to panic. ### PoC A malicious peer can trigger this by: 1. Opening a QUIC connection to a libp2p QUIC listener. 2. Presenting a valid libp2p TLS certificate with a very short lifetime. 3. Allowing the initial handshake-time certificate validation to succeed. 4. Withholding the final client handshake fragment packet until after the certificate expires, but before the QUIC handshake timeout elapses. 5. The listener completes the handshake and hits the post-handshake certificate re-parse, which panics. ### Impact Remote unauthenticated denial of service. Any application exposing an affected `libp2p-quic` listener can be crashed by a network peer that performs a valid-looking QUIC/TLS handshake with attacker-controlled timing. No malformed packets are required.

Advisory Timeline

  • First published September 15, 2026 (27 days ago).
  • Last revised September 15, 2026 — 0 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Cargo
Update libp2p-quic to 0.13.1 or later
cargo update -p libp2p-quic --precise 0.13.1

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: crates.io (1).

PackageEcosystemAffectedFixed In
libp2p-quic
crates.io
All versions0.13.1

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 5.6 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
—
Confidentiality
—
Integrity
—
Availability
—

CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Frequently Asked Questions

What is CVE-2026-61544?
libp2p-quic: Remote panic via certificate expiry race during QUIC handshake This vulnerability has been assigned a severity rating of HIGH (CVSS score: 5.6/10).
How do I check if my project is affected by CVE-2026-61544?
CVE-2026-61544 affects libp2p-quic. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-61544 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
5.6

Exploitation requires specific conditions or has limited impact. Remediate within weeks.

Also Known As

GHSA-5hq8-qhww-jm7q

Related CVEs

  • CVE-2026-93657
    HIGH

    hickory-resolver: Resolver::lookup() and Resolver::lookup_ip() APIs obscure DNSSEC validation failures

  • CVE-2026-18140
    HIGH

    aws-smithy-json: Uncontrolled recursion in the aws-smithy-json unknown-key skip path allows unauthenticated remote denial of service in smithy-rs generated servers

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies