CVE-2026-93599
HighCVSS 7.5Summary
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 with content exactly [0x00], causing an underflow and panic. Reachable via BorrowedCertRevocationList::from_der() when a CRL contains an issuingDistributionPoint extension with such an onlySomeReasons value. Requires an application that opts in to CRL revocation checking and parses attacker-influenced CRL bytes; default rustls configuration is unaffected. Fixed in 0.103.13 and 0.104.0-alpha.7.
Risk Assessment
An attacker can supply a crafted CRL, causing a panic and denial of service in applications that use CRL revocation checking with untrusted sources.
Recommendation
Update rustls-webpki to version 0.103.13 or 0.104.0-alpha.7; if not possible, avoid parsing CRLs from untrusted sources or disable CRL revocation checking.
Other vulnerabilities in rustls-webpki
See all- CVE-2026-93602Medium
rustls-webpki versions before 0.103.10 and 0.104.0-alpha.5 contain faulty CRL authority-matching logic that compares only the first distributionPoint against each CRL's IssuingDistributionPoint, ignoring additional distributionPoints.
- CVE-2026-93601Low
rustls-webpki versions >= 0.101.0 and prior to 0.103.12 and 0.104.0-alpha.6 incorrectly accept permitted-subtree DNS name constraints for certificates asserting a wildcard name. For example, a name constraint of accept.example.com is treated as satisfied by a certificate for *.example.com, which could assert reject.example.com outside the permitted subtree.
- CVE-2026-93600Low
rustls-webpki versions 0.101.0 through 0.103.11 and 0.104.0-alpha releases before 0.104.0-alpha.6 ignore X.509 name constraints that apply to URI names, accepting rather than enforcing them. These constraints apply to otherwise properly issued certificates, so the flaw is reachable after successful signature verification and requires a misissued certificate.
Original NVD description (English source)
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.

