CVE-2026-61544 json
libp2p-quic: Remote panic via certificate expiry race during QUIC handshake
published last mo. modified last mo. also EUVD-2026-79501 , GHSA-5hq8-qhww-jm7q
- cvss
- 8.2
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 21%
- public exploits
- 0
- none known
Summary
libp2p-rust is the official Rust language implementation of the libp2p networking stack. Prior to 0.13.1, libp2p-quic could panic during an inbound QUIC handshake when a remote peer presented a valid short-lived libp2p TLS certificate and delayed the final TLS 1.3 handshake fragment until after the certificate expired. In the Quinn post-handshake upgrade path, transports/quic/src/connection/connecting.rs called libp2p_tls::certificate::parse a second time in remote_peer_id and used expect on the result. The repeated wall-clock validity check could reject the now-expired certificate, causing the expect call to terminate any application exposing an affected libp2p-quic listener. This vulnerability is fixed in 0.13.1.
Patch / fix
- crates.io libp2p-quic 0.13.1
- libp2p libp2p 0.13.1
- protocol libp2p 0.13.1
- github.com/libp2p/rust-libp2p@212f377 commit
- github.com/libp2p/rust-libp2p@e8f35e1 commit
- github.com/libp2p/rust-libp2p#6525 pull request
Is CVE-2026-61544 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.28% chance of exploitation in the next 30 days, higher than 21% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/libp2p/rust-libp2p/security/advisories/GHSA-5hq8-qhww-jm7q referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.2 | 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 |
| CNA | 4.0 | 8.2 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | libp2p-quic | <0.13.1 |
0.13.1 |
Affected products
- libp2p rust-libp2p
Classification
- Weakness
-
- CWE-248 Uncaught Exception
References
-
github.com
/libp2p/rust-libp2p/pull/6525
web
-
github.com
/libp2p/rust-libp2p/commit/212f3774af048e2cecfb2e6b1e08477685e52b22
web
-
github.com
/libp2p/rust-libp2p/commit/e8f35e12c2418b04df6e9cdf036005e8aee3c7a2
web
-
github.com
/libp2p/rust-libp2p/security/advisories/GHSA-5hq8-qhww-jm7q
exploit, web
-
github.com
/libp2p/rust-libp2p
package
Sources
- CVE List CVE-2026-61544
- GitHub Advisory GHSA-5hq8-qhww-jm7q
- NVD CVE-2026-61544
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.