CVE-2026-69248
MediumCVSS 6.9Exploitation Probability (EPSS)
Low risk8th percentile - higher than 8% of all known CVEs
Summary
The python-cryptography library prior to version 49.0.0 incorrectly handles DNS constraints in certificates. If an intermediate CA restricts a name to foo.example.com and the leaf certificate contains a wildcard *.example.com, the validator accepts a certificate that escapes the permitted names, allowing acceptance of an invalid certificate chain.
Risk Assessment
An attacker can exploit this vulnerability to present an invalid certificate, potentially leading to impersonation of trusted domains and communication interception.
Recommendation
Immediately upgrade the python-cryptography library to version 49.0.0 or later.
Other vulnerabilities in python-cryptography
See all- CVE-2020-25659Medium
The vulnerability in python-cryptography 3.2 allows Bleichenbacher timing attacks on the RSA decryption API. Attackers can exploit timing differences in processing valid PKCS#1 v1.5 ciphertext.
- CVE-2026-69249High
python-cryptography, a cryptographic library for Python, prior to version 49.0.0, is vulnerable to DoS via resource exhaustion. When resolving invalid certificate chains with duplicate self-signed certificates, processing recursively invokes the same candidate, leading to exponential blowup. An attacker can supply a chain causing processing time over 5 seconds, leading to denial of service. Fixed in version 49.0.0.
Original NVD description (English source)
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 49.0.0, if an intermediate constrained CA permits the DNS name foo.example.com, and the leaf certificate has a wildcard in its DNS SAN of *.example.com, python-cryptography's verifier accepts which allows escaping outside of the permitted names. The core issue is in DNSConstraint::matches, where a wildcard pattern was treated as matching a more-specific permitted constraint even though *.example.com can expand to sibling names such as bar.example.com outside foo.example.com. This allows acceptance of an invalid certificate chain. This issue is fixed in 49.0.0.

