CVE-2026-69248
MediumCVSS 6.9Exploitation Probability (EPSS)
Low risk15th percentile - higher than 15% of all known CVEs
Summary
The cryptography package for Python in versions 45.0.0 through 48.0.0 has a vulnerability in certificate chain verification. If an intermediate constrained CA permits the DNS name foo.example.com, and the leaf certificate has a wildcard *.example.com, the verifier accepts the chain, allowing escape outside permitted names. Fixed in version 49.0.0.
Risk Assessment
The risk includes acceptance of an invalid certificate chain, which could lead to impersonation of trusted domains and compromise communication security.
Recommendation
Update the cryptography package to version 49.0.0 or later, which includes the fix.
Other vulnerabilities in cryptography
See all- CVE-2024-26130High
The cryptography library versions 38.0.0 through 42.0.4 contains a NULL pointer dereference vulnerability in pkcs12.serialize_key_and_certificates when a certificate does not match the private key and an encryption_algorithm with hmac_hash is set. This can crash the Python process.
- CVE-2026-39892Critical
The cryptography library for Python versions 45.0.0 through 46.0.6 contains a buffer overflow vulnerability. The issue occurs when a non-contiguous buffer is passed to APIs that accept Python buffers (e.g., Hash.update()). The flaw is fixed in version 46.0.7.
- CVE-2020-36242Critical
In the cryptography package for Python before version 3.3.2, sequences of update calls for symmetric encryption of multi-GB data can cause integer overflow and buffer overflow, as demonstrated with the Fernet class.
- CVE-2026-69247High
cryptography, a cryptographic library for Python, versions 44.0.0 through 50.0.0, is vulnerable to a Bleichenbacher-style attack. Functions pkcs7_decrypt_der, pkcs7_decrypt_pem, and pkcs7_decrypt_smime reveal differences in decrypting encryptedKey, which can be exploited to decrypt the content-encryption key. Exploitation requires a service auto-decrypting untrusted EnvelopedData, e.g., S/MIME gateways. Fixed in version 50.0.0.
- CVE-2026-34073Medium
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to version 46.0.6, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography would allow a peer named bar.example.com to validate against a wildcard leaf certificate for *.example.com, even if the leaf's parent certificate (or upwards) contained an excluded subtree constraint for bar.example.com. This issue has been patched in version 46.0.6.
- CVE-2026-26007Medium
The cryptography library for Python before version 46.0.5 does not verify that a public key point belongs to the expected prime-order subgroup. This missing validation allows an attacker to provide a point from a small-order subgroup, leading to private key leakage in ECDH and signature forgery in ECDSA. Only SECT curves are affected.
Original NVD description (English source)
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 45.0.0 through 48.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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

