CVE-2026-34073
cryptography has incomplete DNS name constraint enforcement on peer names
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
1.7
cryptography has incomplete DNS name constraint enforcement on peer names
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.
- Record
CVE-2026-34073- CVSS 4.0
- 1.7 Low
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U - Weakness
- CWE-295
- Updated
- 2026-11-02
EUVDEUVD-2026-17284
1.7
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.
- Record
EUVD-2026-17284- CVSS 4.0
- 1.7 Low
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-m959-cc7f-wv43
1.7
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
- Record
GHSA-m959-cc7f-wv43- CVSS 4.0
- 1.7 Low
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U - CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
NVD
1.7
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.
- Record
CVE-2026-34073- CVSS 4.0
- 1.7 Low
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-34073
5.3
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.
- Record
ALPINE-CVE-2026-34073- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVBELL-CVE-2026-34073
5.3
- Record
BELL-CVE-2026-34073- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
Show 17 moreShow less
OSV
1.7
cryptography has incomplete DNS name constraint enforcement on peer names
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.
- Record
CVE-2026-34073- CVSS 4.0
- 1.7 Low
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U - Weakness
- CWE-295
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-34073
5.3
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.
- Record
DEBIAN-CVE-2026-34073- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVGHSA-m959-cc7f-wv43
1.7
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
- Record
GHSA-m959-cc7f-wv43- CVSS 4.0
- 1.7 Low
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U - CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-295
- Updated
- 2026-11-02
OSVPYSEC-2026-35
5.3
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.
- Record
PYSEC-2026-35- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVRHSA-2026:7295
7.4
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:7295- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-34073
5.3
CVE-2026-34073 in cryptography - Patched by Root
Root has patched CVE-2026-34073 in the cryptography package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-34073- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-34073
1.7
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.
- Record
UBUNTU-CVE-2026-34073- CVSS 4.0
- 1.7 Low
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U - CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVCLSA-2026-1781225624 No score
TuxCare security update for cryptography (2 CVEs)
TuxCare rebuilt cryptography to address 2 CVEs. Fixed in 45.0.7.post3+tuxcare.
- Record
CLSA-2026-1781225624- Updated
- 2026-11-02
OSVCLSA-2026-1783645382 No score
TuxCare security update for cryptography (2 CVEs)
TuxCare rebuilt cryptography to address 2 CVEs. Fixed in 44.0.3.post3+tuxcare.
- Record
CLSA-2026-1783645382- Updated
- 2026-11-02
OSVCLSA-2026-1784164006 No score
TuxCare security update for cryptography (1 CVE)
TuxCare rebuilt cryptography to address 1 CVE. Fixed in 43.0.3.post3+tuxcare.
- Record
CLSA-2026-1784164006- Updated
- 2026-11-02
OSVCLSA-2026-1789557846 No score
TuxCare security update for cryptography (2 CVEs)
TuxCare rebuilt cryptography to address 2 CVEs. Fixed in 43.0.1.post3+tuxcare.
- Record
CLSA-2026-1789557846- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10454-1 No score
python311-cryptography-46.0.6-1.1 on GA media
These are all security issues fixed in the python311-cryptography-46.0.6-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10454-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20506-1 No score
Security update for python-cryptography
This update for python-cryptography fixes the following issues:
- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)
- CVE-2026-26007: missing validation can lead to security issues for signature verification (ECDSA) and shared key negotiation (ECDH) (bsc#1258074).
- Record
openSUSE-SU-2026:20506-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21021-1 No score
Security update for python-cryptography
This update for python-cryptography fixes the following issues:
- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)
- CVE-2026-26007: missing validation can lead to security issues for signature verification (ECDSA) and shared key negotiation (ECDH) (bsc#1258074).
- Record
SUSE-SU-2026:21021-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21116-1 No score
Security update for python-cryptography
This update for python-cryptography fixes the following issues:
- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)
- Record
SUSE-SU-2026:21116-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21126-1 No score
Security update for python-cryptography
This update for python-cryptography fixes the following issues:
- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)
- Record
SUSE-SU-2026:21126-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21165-1 No score
Security update for python-cryptography
This update for python-cryptography fixes the following issues:
- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)
- CVE-2026-26007: missing validation can lead to security issues for signature verification (ECDSA) and shared key negotiation (ECDH) (bsc#1258074).
- Record
SUSE-SU-2026:21165-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
cryptographyPyPI |
before 46.0.6 | 46.0.6 |
py3-cryptographyAlpine:v3.23 |
before 46.0.7-r0 | 46.0.7-r0 |
py3-cryptographyAlpine:v3.24 |
before 46.0.7-r0 | 46.0.7-r0 |
py3-cryptographyAlpaquita:25 |
44.0.3-r0 up to 44.0.3-r2 | 44.0.3-r2 |
py3-cryptographyAlpaquita:stream |
39.0.2-r0 up to 46.0.6-r0 | 46.0.6-r0 |
cryptographyTuxCare:PyPI From an advisory covering 2 CVEs |
45.0.7 up to 45.0.7.post3+tuxcare, plus listed versions 45.0.7.post1+tuxcare45.0.7.post2+tuxcare |
45.0.7.post3+tuxcare |
cryptographyTuxCare:PyPI From an advisory covering 2 CVEs |
44.0.3 up to 44.0.3.post3+tuxcare, plus listed versions 44.0.3.post1+tuxcare44.0.3.post2+tuxcare |
44.0.3.post3+tuxcare |
cryptographyTuxCare:PyPI |
43.0.3 up to 43.0.3.post3+tuxcare, plus listed versions 43.0.3.post1+tuxcare43.0.3.post2+tuxcare |
43.0.3.post3+tuxcare |
cryptographyTuxCare:PyPI From an advisory covering 2 CVEs |
43.0.1 up to 43.0.1.post3+tuxcare, plus listed versions 43.0.1.post1+tuxcare43.0.1.post2+tuxcare |
43.0.1.post3+tuxcare |
python-cryptographyDebian:12 |
All versions, plus listed versions 38.0.4-338.0.4-3+deb12u138.0.4-441.0.7-141.0.7-2 Show 23 moreShow less41.0.7-341.0.7-441.0.7-542.0.5-142.0.5-243.0.0-143.0.0-243.0.0-344.0.2-144.0.2-245.0.6-145.0.6-1~exp145.0.7-146.0.1-146.0.1-1~exp146.0.5-146.0.5-246.0.6-146.0.7-147.0.0-149.0.0-149.0.0-1~exp149.0.0-2 |
None known |
Show 12 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-cryptographyDebian:13 |
All versions, plus listed versions 43.0.0-343.0.0-3+deb13u144.0.2-144.0.2-245.0.6-1 Show 12 moreShow less45.0.6-1~exp145.0.7-146.0.1-146.0.1-1~exp146.0.5-146.0.5-246.0.6-146.0.7-147.0.0-149.0.0-149.0.0-1~exp149.0.0-2 |
None known |
python-cryptographyDebian:14 |
before 46.0.6-1, plus listed versions 43.0.0-344.0.2-144.0.2-245.0.6-145.0.6-1~exp1 Show 5 moreShow less45.0.7-146.0.1-146.0.1-1~exp146.0.5-146.0.5-2 |
46.0.6-1 |
cryptographyPyPI |
before 46.0.6, plus listed versions 0.10.20.2.10.2.20.3 Show 45 moreShow less0.40.50.5.10.5.20.5.30.5.40.60.6.10.70.7.10.7.20.80.8.10.8.20.90.9.10.9.20.9.31.01.0.11.0.21.11.1.11.1.21.21.2.11.2.21.2.31.31.3.11.3.21.3.31.3.41.41.51.5.11.5.21.5.31.61.71.7.11.7.21.81.8.11.8.2 |
46.0.6 |
python-cryptographyRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:46.0.7-1.hum1 | 0:46.0.7-1.hum1 |
cryptographyRoot:PyPI |
before 46.0.5+aikido.7 | 46.0.5+aikido.736.0.1+aikido.746.0.3+aikido.846.0.4+aikido.543.0.1+aikido.745.0.5+aikido.946.0.1+aikido.643.0.1+aikido.346.0.1+aikido.246.0.3+aikido.943.0.1+aikido.846.0.5+aikido.345.0.5+aikido.546.0.1+aikido.346.0.4+aikido.343.0.1+aikido.446.0.3+aikido.436.0.1+aikido.446.0.4+aikido.446.0.5+aikido.446.0.1+aikido.446.0.3+aikido.543.0.1+aikido.536.0.1+aikido.545.0.5+aikido.646.0.5+aikido.545.0.5+aikido.745.0.5+aikido.836.0.1+aikido.646.0.5+aikido.646.0.3+aikido.646.0.3+aikido.746.0.1+aikido.543.0.1+aikido.643.0.1+aikido.945.0.5+aikido.1036.0.1+aikido.846.0.1+aikido.746.0.5+aikido.846.0.4+aikido.646.0.3+aikido.1046.0.4+aikido.7 |
python-cryptographySUSE:Linux Micro 6.2 From an advisory covering 2 CVEs |
before 44.0.3-160000.3.1 | 44.0.3-160000.3.1 |
python-cryptographySUSE:Linux Micro 6.1 |
before 42.0.4-slfo.1.1_4.1 | 42.0.4-slfo.1.1_4.1 |
python-cryptographySUSE:Linux Micro 6.0 |
before 42.0.4-4.1 | 42.0.4-4.1 |
python-cryptographySUSE:Linux Enterprise Server 16.0 From an advisory covering 2 CVEs |
before 44.0.3-160000.3.1 | 44.0.3-160000.3.1 |
python-cryptographySUSE:Linux Enterprise Server for SAP applications 16.0 From an advisory covering 2 CVEs |
before 44.0.3-160000.3.1 | 44.0.3-160000.3.1 |
python-cryptographyopenSUSE:Tumbleweed |
before 46.0.6-1.1 | 46.0.6-1.1 |
python-cryptographyopenSUSE:Leap 16.0 From an advisory covering 2 CVEs |
before 44.0.3-160000.3.1 | 44.0.3-160000.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-34073 is a low vulnerability (CVSS 1.7) in Cryptography.io Cryptography, published March 27, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.23%, the 13th percentile. Fixed in cryptography 46.0.6.
References
github.com/pyca/cryptography/security/advisories/GHSA-m959-cc7f-wv43
kb.cert.org/vuls/id/948176
nvd.nist.gov/vuln/detail/CVE-2026-34073
github.com/pypa/advisory-database/tree/main/vulns/cryptography/PYSEC-2026-35.yaml
github.com/advisories/GHSA-m959-cc7f-wv43
security.alpinelinux.org/vuln/CVE-2026-34073
Show 33 moreShow less
docs.bell-sw.com/security/cves/CVE-2026-34073
github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34073.json
security-tracker.debian.org/tracker/CVE-2026-34073
github.com/pyca/cryptography
access.redhat.com/errata/RHSA-2026:7295
images.redhat.com
access.redhat.com/security/cve/CVE-2026-26007
access.redhat.com/security/updates/classification
access.redhat.com/security/cve/CVE-2026-39892
access.redhat.com/security/cve/CVE-2026-34073
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_7295.json
bugzilla.redhat.com/show_bug.cgi?id=2438762
cve.org/CVERecord?id=CVE-2026-26007
nvd.nist.gov/vuln/detail/CVE-2026-26007
github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c
github.com/pyca/cryptography/security/advisories/GHSA-r6ph-v2qm-q3c2
bugzilla.redhat.com/show_bug.cgi?id=2453276
cve.org/CVERecord?id=CVE-2026-34073
bugzilla.redhat.com/show_bug.cgi?id=2456735
cve.org/CVERecord?id=CVE-2026-39892
nvd.nist.gov/vuln/detail/CVE-2026-39892
openwall.com/lists/oss-security/2026/04/08/12
github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5
github.com/pyca/cryptography/security/advisories/GHSA-p423-j2cm-9vmq
suse.com/support/update/announcement/2026/suse-su-202621021-1
bugzilla.suse.com/1258074
bugzilla.suse.com/1260876
suse.com/security/cve/CVE-2026-26007
suse.com/security/cve/CVE-2026-34073
suse.com/support/update/announcement/2026/suse-su-202621116-1
suse.com/support/update/announcement/2026/suse-su-202621126-1
suse.com/support/update/announcement/2026/suse-su-202621165-1
ubuntu.com/security/CVE-2026-34073
Left out here: 101 versions. The JSON record has them.