Listen to this Post
The vulnerability arises from a flawed matching routine in the webpki crate when a certificate contains multiple CRL distribution points. During revocation checking, webpki iterates over the certificate’s distribution points but, for each CRL’s IssuingDistributionPoint extension, only the first distribution point of the certificate is compared. Subsequent distribution points are never evaluated. If a valid CRL is issued for a later distribution point, it is ignored entirely. This logic error affects the revocation status decision: when the default `UnknownStatusPolicy::Deny` is used, the library returns `Error::UnknownRevocationStatus` (a safe but incorrect outcome). If the policy is set to UnknownStatusPolicy::Allow, the library incorrectly treats the certificate as unrevoked, even when a matching CRL exists. Because both the certificate and the CRL must be signed by a trusted issuer, an attacker would need to compromise a valid certification authority to exploit the bug. In practice, this flaw is more likely to cause latent failures where legitimate CRLs are silently ignored, leading to either unnecessary denial or improper acceptance of revoked credentials.
Platform: Rust crate
Version: 0.101.0–0.103.9, 0.104.0-alpha.1–0.104.0-alpha.4
Vulnerability: CRL distribution point mismatch
Severity: Moderate
date: Mar 20, 2026
Prediction: Already patched (Mar 20, 2026)
What Undercode Say:
Check current webpki version cargo tree | grep webpki Update to patched version cargo update -p [email protected] or for alpha channel cargo update -p [email protected] Verify fix in Cargo.lock grep -A2 "webpki" Cargo.lock
How Exploit:
An attacker who controls a trusted CA can issue a revoked certificate with multiple distribution points and provide a CRL that matches only a secondary distribution point. The library ignores the correct CRL, and if `UnknownStatusPolicy::Allow` is enabled, the revoked certificate is accepted. With default policy, the attack still causes denial of service by forcing `UnknownRevocationStatus` errors.
Protection from this CVE:
Update webpki to version 0.103.10 or 0.104.0-alpha.5 (or later). If immediate update is not possible, ensure that `UnknownStatusPolicy::Deny` is used and treat `UnknownRevocationStatus` as a hard failure. Alternatively, avoid relying on CRL checks for certificates with multiple distribution points until patched.
Impact:
Limited in practice because exploiting requires control over a trusted CA, which already enables more direct revocation bypass methods. However, in scenarios where `UnknownStatusPolicy::Allow` is used, the bug can lead to acceptance of revoked certificates, weakening security posture.
🎯Let’s Practice Exploiting & Learn Patching For Free:
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

