CVE-2026-34073: cryptography has incomplete DNS name constraint enforcement on peer names
Summary
In versions of cryptography prior to 46.0.5, 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 behavior resulted from a gap between RFC 5280 (which defines Name Constraint semantics) and RFC 9525 (which defines service identity semantics): put together, neither states definitively whether Name Constraints should be applied to peer names. To close this gap, cryptography now conservatively rejects any validation where the peer name would be rejected by a name constraint if it were a SAN instead.
In practice, exploitation of this bypass requires an uncommon X.509 topology, one that the Web PKI avoids because it exhibits these kinds of problems. Consequently, we consider this a medium-to-low impact severity.
See CVE-2025-61727 for a similar bypass in Go's crypto/x509.
Remediation
Users should upgrade to 46.0.6 or newer.
Attribution
Reporter: @1seal
Other sources
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.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pip/cryptographyto a version that resolves this vulnerability.Fixed in 46.0.6 - Upgrade
Upgrade
pyca/cryptographyto a version that resolves this vulnerability.Fixed in 46.0.6 - Upgrade
Upgrade
pyca/cryptographyto a version that resolves this vulnerability.Fixed in 46.0.5
Event History
Frequently Asked Questions
What is the severity of CVE-2026-34073?
CVE-2026-34073 has not been explicitly assigned a severity level, but it introduces significant vulnerabilities in DNS name constraints that could compromise security.
How do I fix CVE-2026-34073?
To fix CVE-2026-34073, update the cryptography package to version 46.0.6 or later.
What impact does CVE-2026-34073 have on my applications?
CVE-2026-34073 could potentially allow unauthorized certificate validation under certain DNS conditions, impacting application security.
Which versions of the cryptography package are affected by CVE-2026-34073?
CVE-2026-34073 affects all versions of the cryptography package prior to 46.0.5.
Is CVE-2026-34073 related to certificate validation?
Yes, CVE-2026-34073 relates to improper validation of DNS name constraints during certificate validation.