CVE-2026-93599: rustls-webpki integer underflow in BIT STRING parsing

CVE-2026-93599 · Severity: high · CVSS 7.5 · Published 2026-09-18

rustls-webpki is a Rust library used to validate X.509 certificates and certificate revocation lists (CRLs) in TLS applications. A flaw in its BIT STRING parsing causes the application to crash (denial of service) when processing a specially crafted CRL, but only if the application has explicitly enabled CRL revocation checking. The default configuration is unaffected.

Technologies: rustls-webpki (crates.io), Rustls Webpki. Vendors: crates.io, Rustls.

Quick answers

Is CVE-2026-93599 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-93599 being exploited in the wild.
How severe is CVE-2026-93599?
High severity, with a CVSS score of 7.5, published 18 September 2026.
Which products and versions are affected?
rustls-webpki (crates.io) SEMVER:introduced=0,fixed=0.103.13, SEMVER:introduced=0.0.0-0,fixed=0.103.13,introduced=0.104.0-alpha.1,fixed=0.104.0-alpha.7; Rustls Webpki through 0.103.12 and 0.104.0-alpha releases before 0.104.0-alpha.7.
Is there a fix for CVE-2026-93599?
Yes. rustls-webpki (crates.io): upgrade to 0.103.13, 0.104.0-alpha.7 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-93599 attacked?
It is attacked over the network.
Am I affected by CVE-2026-93599?
Check whether you run rustls-webpki (crates.io) or Rustls Webpki at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • rustls-webpki (crates.io): upgrade to 0.103.13, 0.104.0-alpha.7 or later
    cargo update -p rustls-webpki

Technical details

The vulnerability is an integer underflow in the bit_string_flags() function in src/der.rs when parsing named-bit BIT STRINGs. The input validation guard fails to reject a BIT STRING with content [0x00] (zero padding bits, no data bytes), causing raw_bits.len() - 1 to underflow to usize::MAX, followed by an out-of-bounds index access that panics. The flaw is reachable via the public API BorrowedCertRevocationList::from_der() when a CRL contains an issuingDistributionPoint extension with an onlySomeReasons value matching this pattern. Exploitation requires an application that explicitly passes RevocationOptions to verify_for_usage() and parses CRL bytes from an attacker-controlled source (e.g., via a custom Certificate Distribution Point URL or local network attack). A single malformed 103-byte CRL causes denial of service. Fixed in versions 0.103.13 and 0.104.0-alpha.7.

Affected products

  • rustls webpki through 0.103.12 and 0.104.0-alpha releases before 0.104.0-alpha.7

Identifiers

  • CVE-2026-93599
  • GHSA-82j2-j2ch-gfr8
  • RUSTSEC-2026-0104

Timeline

  • 2026-04-21: disclosed
  • 2026-04-21: patched: Fixed in 0.103.13 and 0.104.0-alpha.7
  • 2026-09-18: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.