{"id":"CVE-2026-93599","summary":"rustls-webpki before 0.103.13 Panic via empty BIT STRING","details":"rustls-webpki through 0.103.12 (and 0.104.0-alpha releases before 0.104.0-alpha.7) contains a reachable panic in bit_string_flags() in src/der.rs. The input guard fails to reject a named-bit BIT STRING whose content is exactly [0x00] (zero padding bits and no data bytes), so raw_bits.len() - 1 underflows on the empty slice and the subsequent index operation panics (subtract-with-overflow in debug, index-out-of-bounds in release). The condition is reachable through the public API BorrowedCertRevocationList::from_der() when a CRL contains an issuingDistributionPoint extension with such an onlySomeReasons value. Exploitation requires an application that explicitly opts in to CRL revocation checking by passing RevocationOptions to verify_for_usage() and that parses CRL bytes obtained from a source the attacker can influence; the default rustls configuration, which does not use RevocationOptions, is unaffected. A crafted CRL causes a denial of service via the panic. Fixed in 0.103.13 and 0.104.0-alpha.7.","aliases":["GHSA-82j2-j2ch-gfr8","RUSTSEC-2026-0104"],"modified":"2026-09-19T03:55:33.412079637Z","published":"2026-09-18T13:20:10.258Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93599.json","cna_assigner":"VulnCheck","cwe_ids":["CWE-191"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93599.json"},{"type":"ADVISORY","url":"https://github.com/rustls/webpki/security/advisories/GHSA-82j2-j2ch-gfr8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-93599"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/rustls-webpki-before-0.103.13-panic-via-empty-bit-string"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/rustls/webpki","events":[{"introduced":"0"},{"fixed":"2879b2ce7a476181ac3050f73fe0835f04728e86"},{"introduced":"5a23b7e1c7b6e898d6bb437730a029b2695aa3eb"},{"fixed":"d3b9a6db1e3b7a81ca1e1e6136a303f4ab11b32d"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"0.103.13"},{"introduced":"0.104.0-alpha.1"},{"fixed":"0.104.0-alpha.7"}],"source":"AFFECTED_FIELD"}}],"versions":["v/0.103.12","v/0.104.0-alpha.6","v/0.103.11","v/0.103.10","v/0.104.0-alpha.5","v/0.103.9","v/0.104.0-alpha.4","v/0.104.0-alpha.3","v/0.103.8","v/0.104.0-alpha.2","v/0.103.7","v/0.104.0-alpha.1","v/0.103.6","v/0.103.5","v/0.103.4","v/0.103.3","v/0.103.2","v/0.103.1","v/0.103.0","v/0.102.8","v/0.102.7","v/0.102.6","v/0.102.5","v/0.102.4","v/0.102.3","v/0.102.2","v/0.102.1","v/0.102.0","v/0.102.0-alpha.8","v/0.102.0-alpha.6","v/0.102.0-alpha.4","v/0.102.0-alpha.2","v/0.100.1","v/0.101.2","v/0.102.0-alpha.0","v/0.100.0","v/0.100.0-alpha.2","v/0.100.0-alpha.1","0.17.0","0.16.0","0.13.0","0.9.4","0.12.1","0.11.0","0.10.2","0.10.1","0.10.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93599.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}