CVE-2026-93599 rustls-webpki before 0.103.13 Panic via empty BIT STRING
A crafted CRL causes a panic in rustls-webpki when CRL revocation checking is enabled, leading to denial of service.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-93599?
CVE-2026-93599 is a high-severity denial of service vulnerability in rustls webpki, published on 18 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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.
Weakness: CWE-191
Which versions are affected by CVE-2026-93599?
5 open source packages ship an affected version, including rustls-webpki.
| Package | Affected | Fixed in |
|---|---|---|
rustls-webpki crates.io | All versions | 0.103.13 |
rustls-webpki crates.io | All versions | 0.103.13 |
rustls-webpki crates.io | From 0.0.0-0 | 0.103.13, 0.104.0-alpha.7 |
rustls-webpki crates.io | From 0.104.0-alpha.1 | 0.104.0-alpha.7 |
rustls-webpki crates.io | From 0.104.0-alpha.1 | 0.104.0-alpha.7 |
Linux distribution packages (24)
cargo Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
clippy Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
netavark Red Hat:hummingbird:1 | All versions | 0:2.1.0-1.hum1 |
netavark-tests Red Hat:hummingbird:1 | All versions | 0:2.1.0-1.hum1 |
rust Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-analyzer Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-debugger-common Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-doc Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-gdb Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-lldb Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-src Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-aarch64-unknown-none-softfloat Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-aarch64-unknown-uefi Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-i686-pc-windows-gnu Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-wasm32-unknown-unknown Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-wasm32-wasip1 Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-x86_64-pc-windows-gnu Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-x86_64-unknown-none Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rust-std-static-x86_64-unknown-uefi Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
rustfmt Red Hat:hummingbird:1 | All versions | 0:1.98.1-1.hum1 |
aws-nitro-enclaves-cli openSUSE:Tumbleweed | All versions | 1.5.2~git0.1c496ed-1.1 |
obs-service-cargo openSUSE:Tumbleweed | All versions | 7.2.2-3.1 |
shadowsocks-rust openSUSE:Tumbleweed | All versions | 1.25.0-2.1 |
How do I fix CVE-2026-93599?
Upgrade rustls-webpki to a fixed version for your release line: 0.103.13 or 0.104.0-alpha.7.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2026-93599 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-93599 exists.
Sources
Also known as AZL-103469, AZL-103494, AZL-103506, AZL-103518, CLEANSTART-2026-YH54406, DEBIAN-CVE-2026-93599 and 33 more.