{"id":"CVE-2026-34073","aliases":["ALPINE-CVE-2026-34073","BELL-CVE-2026-34073","CLSA-2026-1781225624","CLSA-2026-1783645382","CLSA-2026-1784164006","CLSA-2026-1789557846","DEBIAN-CVE-2026-34073","EUVD-2026-17284","GHSA-m959-cc7f-wv43","PYSEC-2026-35","RHSA-2026:7295","ROOT-APP-PYPI-CVE-2026-34073","SUSE-SU-2026:21021-1","SUSE-SU-2026:21116-1","SUSE-SU-2026:21126-1","SUSE-SU-2026:21165-1","UBUNTU-CVE-2026-34073","openSUSE-SU-2026:10454-1","openSUSE-SU-2026:20506-1"],"status":"published","title":"cryptography has incomplete DNS name constraint enforcement on peer names","description":"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.","severity":{"version":"4.0","score":1.7,"vector":"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","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00227,"percentile":0.13537,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-295"],"published":"2026-03-27T19:56:21Z","modified":"2026-10-30T12:17:11Z","fixes":[{"ecosystem":"PyPI","package":"cryptography","fixed_in":["46.0.6"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.23","package":"py3-cryptography","fixed_in":["46.0.7-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"py3-cryptography","fixed_in":["46.0.7-r0"],"sources":["osv"]},{"ecosystem":"Alpaquita:25","package":"py3-cryptography","fixed_in":["44.0.3-r2"],"sources":["osv"]},{"ecosystem":"Alpaquita:stream","package":"py3-cryptography","fixed_in":["46.0.6-r0"],"sources":["osv"]},{"ecosystem":"TuxCare:PyPI","package":"cryptography","fixed_in":["43.0.3.post3+tuxcare"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"python-cryptography","fixed_in":["46.0.6-1"],"sources":["osv"]},{"ecosystem":"Root:PyPI","package":"cryptography","fixed_in":["46.0.5+aikido.7","36.0.1+aikido.7","46.0.3+aikido.8","46.0.4+aikido.5","43.0.1+aikido.7","45.0.5+aikido.9","46.0.1+aikido.6","43.0.1+aikido.3","46.0.1+aikido.2","46.0.3+aikido.9","43.0.1+aikido.8","46.0.5+aikido.3","45.0.5+aikido.5","46.0.1+aikido.3","46.0.4+aikido.3","43.0.1+aikido.4","46.0.3+aikido.4","36.0.1+aikido.4","46.0.4+aikido.4","46.0.5+aikido.4","46.0.1+aikido.4","46.0.3+aikido.5","43.0.1+aikido.5","36.0.1+aikido.5","45.0.5+aikido.6","46.0.5+aikido.5","45.0.5+aikido.7","45.0.5+aikido.8","36.0.1+aikido.6","46.0.5+aikido.6","46.0.3+aikido.6","46.0.3+aikido.7","46.0.1+aikido.5","43.0.1+aikido.6","43.0.1+aikido.9","45.0.5+aikido.10","36.0.1+aikido.8","46.0.1+aikido.7","46.0.5+aikido.8","46.0.4+aikido.6","46.0.3+aikido.10","46.0.4+aikido.7"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Micro 6.1","package":"python-cryptography","fixed_in":["42.0.4-slfo.1.1_4.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Micro 6.0","package":"python-cryptography","fixed_in":["42.0.4-4.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"python-cryptography","fixed_in":["46.0.6-1.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.6"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"py3-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.7-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"py3-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.7-r0"}]}]},{"source":"osv","ecosystem":"Alpaquita:25","package":"py3-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"44.0.3-r0"},{"fixed":"44.0.3-r2"}]}]},{"source":"osv","ecosystem":"Alpaquita:stream","package":"py3-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"39.0.2-r0"},{"fixed":"46.0.6-r0"}]}]},{"source":"osv","ecosystem":"TuxCare:PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"45.0.7"},{"fixed":"45.0.7.post3+tuxcare"}]}],"versions":["45.0.7","45.0.7.post1+tuxcare","45.0.7.post2+tuxcare"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"44.0.3"},{"fixed":"44.0.3.post3+tuxcare"}]}],"versions":["44.0.3","44.0.3.post1+tuxcare","44.0.3.post2+tuxcare"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"43.0.3"},{"fixed":"43.0.3.post3+tuxcare"}]}],"versions":["43.0.3","43.0.3.post1+tuxcare","43.0.3.post2+tuxcare"]},{"source":"osv","ecosystem":"TuxCare:PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"43.0.1"},{"fixed":"43.0.1.post3+tuxcare"}]}],"versions":["43.0.1","43.0.1.post1+tuxcare","43.0.1.post2+tuxcare"],"bundled":2},{"source":"osv","ecosystem":"Debian:12","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["38.0.4-3","38.0.4-3+deb12u1","38.0.4-4","41.0.7-1","41.0.7-2","41.0.7-3","41.0.7-4","41.0.7-5","42.0.5-1","42.0.5-2","43.0.0-1","43.0.0-2","43.0.0-3","44.0.2-1","44.0.2-2","45.0.6-1","45.0.6-1~exp1","45.0.7-1","46.0.1-1","46.0.1-1~exp1","46.0.5-1","46.0.5-2","46.0.6-1","46.0.7-1","47.0.0-1","49.0.0-1","49.0.0-1~exp1","49.0.0-2"]},{"source":"osv","ecosystem":"Debian:13","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["43.0.0-3","43.0.0-3+deb13u1","44.0.2-1","44.0.2-2","45.0.6-1","45.0.6-1~exp1","45.0.7-1","46.0.1-1","46.0.1-1~exp1","46.0.5-1","46.0.5-2","46.0.6-1","46.0.7-1","47.0.0-1","49.0.0-1","49.0.0-1~exp1","49.0.0-2"]},{"source":"osv","ecosystem":"Debian:14","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.6-1"}]}],"versions":["43.0.0-3","44.0.2-1","44.0.2-2","45.0.6-1","45.0.6-1~exp1","45.0.7-1","46.0.1-1","46.0.1-1~exp1","46.0.5-1","46.0.5-2"]},{"source":"osv","ecosystem":"PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.6"}]}],"versions":["0.1","0.2","0.2.1","0.2.2","0.3","0.4","0.5","0.5.1","0.5.2","0.5.3","0.5.4","0.6","0.6.1","0.7","0.7.1","0.7.2","0.8","0.8.1","0.8.2","0.9","0.9.1","0.9.2","0.9.3","1.0","1.0.1","1.0.2","1.1","1.1.1","1.1.2","1.2","1.2.1","1.2.2","1.2.3","1.3","1.3.1","1.3.2","1.3.3","1.3.4","1.4","1.5","1.5.1","1.5.2","1.5.3","1.6","1.7","1.7.1","1.7.2","1.8","1.8.1","1.8.2","1.9","2.0","2.0.1","2.0.2","2.0.3","2.1","2.1.1","2.1.2","2.1.3","2.1.4","2.2","2.2.1","2.2.2","2.3","2.3.1","2.4","2.4.1","2.4.2","2.5","2.6","2.6.1","2.7","2.8","2.9","2.9.1","2.9.2","3.0","3.1","3.1.1","3.2","3.2.1","3.3","3.3.1","3.3.2","3.4","3.4.1","3.4.2","3.4.3","3.4.4","3.4.5","3.4.6","3.4.7","3.4.8","35.0.0","36.0.0","36.0.1","36.0.2","37.0.0","37.0.1","37.0.2","37.0.3","37.0.4","38.0.0","38.0.1","38.0.2","38.0.3","38.0.4","39.0.0","39.0.1","39.0.2","40.0.0","40.0.1","40.0.2","41.0.0","41.0.1","41.0.2","41.0.3","41.0.4","41.0.5","41.0.6","41.0.7","42.0.0","42.0.1","42.0.2","42.0.3","42.0.4","42.0.5","42.0.6","42.0.7","42.0.8","43.0.0","43.0.1","43.0.3","44.0.0","44.0.1","44.0.2","44.0.3","45.0.0","45.0.1","45.0.2","45.0.3","45.0.4","45.0.5","45.0.6","45.0.7","46.0.0","46.0.1","46.0.2","46.0.3","46.0.4","46.0.5"]},{"source":"osv","ecosystem":"PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.6"}]}],"versions":["0.1","0.2","0.2.1","0.2.2","0.3","0.4","0.5","0.5.1","0.5.2","0.5.3","0.5.4","0.6","0.6.1","0.7","0.7.1","0.7.2","0.8","0.8.1","0.8.2","0.9","0.9.1","0.9.2","0.9.3","1.0","1.0.1","1.0.2","1.1","1.1.1","1.1.2","1.2","1.2.1","1.2.2","1.2.3","1.3","1.3.1","1.3.2","1.3.3","1.3.4","1.4","1.5","1.5.1","1.5.2","1.5.3","1.6","1.7","1.7.1","1.7.2","1.8","1.8.1","1.8.2","1.9","2.0","2.0.1","2.0.2","2.0.3","2.1","2.1.1","2.1.2","2.1.3","2.1.4","2.2","2.2.1","2.2.2","2.3","2.3.1","2.4","2.4.1","2.4.2","2.5","2.6","2.6.1","2.7","2.8","2.9","2.9.1","2.9.2","3.0","3.1","3.1.1","3.2","3.2.1","3.3","3.3.1","3.3.2","3.4","3.4.1","3.4.2","3.4.3","3.4.4","3.4.5","3.4.6","3.4.7","3.4.8","35.0.0","36.0.0","36.0.1","36.0.2","37.0.0","37.0.1","37.0.2","37.0.3","37.0.4","38.0.0","38.0.1","38.0.2","38.0.3","38.0.4","39.0.0","39.0.1","39.0.2","40.0.0","40.0.1","40.0.2","41.0.0","41.0.1","41.0.2","41.0.3","41.0.4","41.0.5","41.0.6","41.0.7","42.0.0","42.0.1","42.0.2","42.0.3","42.0.4","42.0.5","42.0.6","42.0.7","42.0.8","43.0.0","43.0.1","43.0.3","44.0.0","44.0.1","44.0.2","44.0.3","45.0.0","45.0.1","45.0.2","45.0.3","45.0.4","45.0.5","45.0.6","45.0.7","46.0.0","46.0.1","46.0.2","46.0.3","46.0.4","46.0.5"]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:46.0.7-1.hum1"}]}],"bundled":3},{"source":"osv","ecosystem":"Root:PyPI","package":"cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.5+aikido.7"},{"fixed":"36.0.1+aikido.7"},{"fixed":"46.0.3+aikido.8"},{"fixed":"46.0.4+aikido.5"},{"fixed":"43.0.1+aikido.7"},{"fixed":"45.0.5+aikido.9"},{"fixed":"46.0.1+aikido.6"},{"fixed":"43.0.1+aikido.3"},{"fixed":"46.0.1+aikido.2"},{"fixed":"46.0.3+aikido.9"},{"fixed":"43.0.1+aikido.8"},{"fixed":"46.0.5+aikido.3"},{"fixed":"45.0.5+aikido.5"},{"fixed":"46.0.1+aikido.3"},{"fixed":"46.0.4+aikido.3"},{"fixed":"43.0.1+aikido.4"},{"fixed":"46.0.3+aikido.4"},{"fixed":"36.0.1+aikido.4"},{"fixed":"46.0.4+aikido.4"},{"fixed":"46.0.5+aikido.4"},{"fixed":"46.0.1+aikido.4"},{"fixed":"46.0.3+aikido.5"},{"fixed":"43.0.1+aikido.5"},{"fixed":"36.0.1+aikido.5"},{"fixed":"45.0.5+aikido.6"},{"fixed":"46.0.5+aikido.5"},{"fixed":"45.0.5+aikido.7"},{"fixed":"45.0.5+aikido.8"},{"fixed":"36.0.1+aikido.6"},{"fixed":"46.0.5+aikido.6"},{"fixed":"46.0.3+aikido.6"},{"fixed":"46.0.3+aikido.7"},{"fixed":"46.0.1+aikido.5"},{"fixed":"43.0.1+aikido.6"},{"fixed":"43.0.1+aikido.9"},{"fixed":"45.0.5+aikido.10"},{"fixed":"36.0.1+aikido.8"},{"fixed":"46.0.1+aikido.7"},{"fixed":"46.0.5+aikido.8"},{"fixed":"46.0.4+aikido.6"},{"fixed":"46.0.3+aikido.10"},{"fixed":"46.0.4+aikido.7"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Micro 6.2","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"44.0.3-160000.3.1"}]}],"bundled":2},{"source":"osv","ecosystem":"SUSE:Linux Micro 6.1","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"42.0.4-slfo.1.1_4.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Micro 6.0","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"42.0.4-4.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 16.0","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"44.0.3-160000.3.1"}]}],"bundled":2},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP applications 16.0","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"44.0.3-160000.3.1"}]}],"bundled":2},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"46.0.6-1.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 16.0","package":"python-cryptography","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"44.0.3-160000.3.1"}]}],"bundled":2}],"products":[{"vendor":"cryptography.io","product":"cryptography"},{"vendor":"pyca","product":"cryptography"}],"references":[{"url":"https://github.com/pyca/cryptography/security/advisories/GHSA-m959-cc7f-wv43","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web","article","report"]},{"url":"https://www.kb.cert.org/vuls/id/948176","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34073","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/cryptography/PYSEC-2026-35.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-m959-cc7f-wv43"},{"url":"https://security.alpinelinux.org/vuln/CVE-2026-34073","tags":["advisory"]},{"url":"https://docs.bell-sw.com/security/cves/CVE-2026-34073","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34073.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-34073","tags":["advisory"]},{"url":"https://github.com/pyca/cryptography","tags":["package"]},{"url":"https://access.redhat.com/errata/RHSA-2026:7295","tags":["advisory"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-26007","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-39892","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-34073","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_7295.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2438762","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-26007","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-26007","tags":["advisory"]},{"url":"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c","tags":["article"]},{"url":"https://github.com/pyca/cryptography/security/advisories/GHSA-r6ph-v2qm-q3c2","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2453276","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-34073","tags":["advisory","report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2456735","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-39892","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39892","tags":["advisory"]},{"url":"http://www.openwall.com/lists/oss-security/2026/04/08/12","tags":["article"]},{"url":"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5","tags":["article"]},{"url":"https://github.com/pyca/cryptography/security/advisories/GHSA-p423-j2cm-9vmq","tags":["article"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202621021-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1258074","tags":["report"]},{"url":"https://bugzilla.suse.com/1260876","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-26007","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-34073","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202621116-1/","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202621126-1/","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-202621165-1/","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-34073","tags":["report"]},{"url":"","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-34073","title":"cryptography has incomplete DNS name constraint enforcement on peer names","description":"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.","status":"published","published":"2026-03-31T02:04:36.275Z","modified":"2026-10-14T16:07:55.097Z","cvss":[{"version":"4.0","score":1.7,"vector":"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","level":"low","assessor":"cna"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T14:20:14.302133Z"}],"euvd":[{"id":"EUVD-2026-17284","description":"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.","status":"published","published":"2026-03-31T02:04:36Z","modified":"2026-10-14T16:07:55Z","cvss":[{"version":"4.0","score":1.7,"vector":"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","level":"low"}],"updated_at":"2026-11-02T17:27:14.304159Z"}],"ghsa":[{"id":"GHSA-m959-cc7f-wv43","title":"cryptography has incomplete DNS name constraint enforcement on peer names","description":"## Summary\n\nIn 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`.\n\nThis 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.\n\nIn 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.\n\nSee CVE-2025-61727 for a similar bypass in Go's `crypto/x509`.\n\n## Remediation\n\nUsers should upgrade to 46.0.6 or newer. \n\n## Attribution\n\nReporter: @1seal","status":"published","published":"2026-03-27T19:56:21Z","modified":"2026-06-05T17:51:31Z","cvss":[{"version":"4.0","score":1.7,"vector":"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","level":"low"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T14:40:17.745826Z"}],"nvd":[{"id":"CVE-2026-34073","description":"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.","status":"published","published":"2026-03-31T03:15:59.123Z","modified":"2026-10-14T17:18:28.637Z","cvss":[{"version":"4.0","score":1.7,"vector":"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","level":"low","assessor":"secondary"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T14:12:12.261218Z"}],"osv":[{"id":"ALPINE-CVE-2026-34073","description":"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.","status":"published","published":"2026-03-31T03:15:59.123Z","modified":"2026-10-01T02:17:49.252025721Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:27:50.269992Z"},{"id":"BELL-CVE-2026-34073","status":"published","published":"2026-04-01T06:08:11.621273Z","modified":"2026-04-09T07:20:30.871994Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:28:23.572955Z"},{"id":"CVE-2026-34073","title":"cryptography has incomplete DNS name constraint enforcement on peer names","description":"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.","status":"published","published":"2026-03-31T02:04:36.275Z","modified":"2026-10-28T02:31:03.188855018Z","cvss":[{"version":"4.0","score":1.7,"vector":"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","level":"low"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T15:45:02.247031Z"},{"id":"DEBIAN-CVE-2026-34073","description":"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.","status":"published","published":"2026-03-31T03:15:59.123Z","modified":"2026-10-15T09:47:32.150969994Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:54.587575Z"},{"id":"GHSA-m959-cc7f-wv43","title":"cryptography has incomplete DNS name constraint enforcement on peer names","description":"## Summary\n\nIn 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`.\n\nThis 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.\n\nIn 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.\n\nSee CVE-2025-61727 for a similar bypass in Go's `crypto/x509`.\n\n## Remediation\n\nUsers should upgrade to 46.0.6 or newer. \n\n## Attribution\n\nReporter: @1seal","status":"published","published":"2026-03-27T19:56:21Z","modified":"2026-09-10T03:51:00.592317622Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"},{"version":"4.0","score":1.7,"vector":"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","level":"low"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T15:46:51.463834Z"},{"id":"PYSEC-2026-35","description":"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.","status":"published","published":"2026-03-31T03:15:59.123Z","modified":"2026-05-20T09:18:55.884138Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:56.847083Z"},{"id":"RHSA-2026:7295","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-04-20T10:11:09Z","modified":"2026-10-20T10:15:12Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:22.928316Z"},{"id":"ROOT-APP-PYPI-CVE-2026-34073","title":"CVE-2026-34073 in cryptography - Patched by Root","description":"Root has patched CVE-2026-34073 in the cryptography package for Root:PyPI. Multiple fixed versions available.","status":"published","published":"2026-10-30T11:16:52Z","modified":"2026-10-30T12:17:11.381006567Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:53:28.259095Z"},{"id":"UBUNTU-CVE-2026-34073","description":"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.","status":"withdrawn","published":"2026-03-31T03:15:00Z","modified":"2026-04-13T12:52:49.324092Z","cvss":[{"version":"4.0","score":1.7,"vector":"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","level":"low"},{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:56:16.036833Z"},{"id":"CLSA-2026-1781225624","title":"TuxCare security update for cryptography (2 CVEs)","description":"TuxCare rebuilt cryptography to address 2 CVEs. Fixed in 45.0.7.post3+tuxcare.","status":"published","published":"2026-08-04T14:52:36Z","modified":"2026-10-15T09:48:01.030036781Z","updated_at":"2026-11-02T15:43:45.445699Z"},{"id":"CLSA-2026-1783645382","title":"TuxCare security update for cryptography (2 CVEs)","description":"TuxCare rebuilt cryptography to address 2 CVEs. Fixed in 44.0.3.post3+tuxcare.","status":"published","published":"2026-08-04T14:52:42Z","modified":"2026-10-15T09:48:05.203597385Z","updated_at":"2026-11-02T15:43:46.151924Z"},{"id":"CLSA-2026-1784164006","title":"TuxCare security update for cryptography (1 CVE)","description":"TuxCare rebuilt cryptography to address 1 CVE. Fixed in 43.0.3.post3+tuxcare.","status":"published","published":"2026-08-04T14:52:44Z","modified":"2026-10-15T09:48:05.54327333Z","updated_at":"2026-11-02T15:43:46.151924Z"},{"id":"CLSA-2026-1789557846","title":"TuxCare security update for cryptography (2 CVEs)","description":"TuxCare rebuilt cryptography to address 2 CVEs. Fixed in 43.0.1.post3+tuxcare.","status":"published","published":"2026-09-16T11:24:06Z","modified":"2026-10-15T09:48:01.974880298Z","updated_at":"2026-11-02T15:43:47.938828Z"},{"id":"openSUSE-SU-2026:10454-1","title":"python311-cryptography-46.0.6-1.1 on GA media","description":"These are all security issues fixed in the python311-cryptography-46.0.6-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-03-28T00:00:00Z","modified":"2026-03-29T10:46:08.148424Z","updated_at":"2026-11-02T16:58:38.415593Z"},{"id":"openSUSE-SU-2026:20506-1","title":"Security update for python-cryptography","description":"This update for python-cryptography fixes the following issues:\n\n- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)\n- CVE-2026-26007: missing validation can lead to security issues for signature verification (ECDSA) and shared key negotiation (ECDH) (bsc#1258074).\n","status":"published","published":"2026-04-10T11:27:11Z","modified":"2026-04-22T18:25:55.573694Z","updated_at":"2026-11-02T16:58:41.463445Z"},{"id":"SUSE-SU-2026:21021-1","title":"Security update for python-cryptography","description":"This update for python-cryptography fixes the following issues:\n\n- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)\n- CVE-2026-26007: missing validation can lead to security issues for signature verification (ECDSA) and shared key negotiation (ECDH) (bsc#1258074).\n","status":"published","published":"2026-04-10T11:26:32Z","modified":"2026-04-14T18:27:08.301522Z","updated_at":"2026-11-02T15:54:02.312556Z"},{"id":"SUSE-SU-2026:21116-1","title":"Security update for python-cryptography","description":"This update for python-cryptography fixes the following issues:\n\n- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)\n","status":"published","published":"2026-04-14T08:30:04Z","modified":"2026-04-18T18:26:01.132653Z","updated_at":"2026-11-02T15:54:02.312556Z"},{"id":"SUSE-SU-2026:21126-1","title":"Security update for python-cryptography","description":"This update for python-cryptography fixes the following issues:\n\n- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)\n","status":"published","published":"2026-04-14T07:57:50Z","modified":"2026-04-18T18:24:57.682434Z","updated_at":"2026-11-02T15:54:02.312556Z"},{"id":"SUSE-SU-2026:21165-1","title":"Security update for python-cryptography","description":"This update for python-cryptography fixes the following issues:\n\n- CVE-2026-34073: Fixed X.509 bypass of name constraints on wildcard SANs with matching peer names. (bsc#1260876)\n- CVE-2026-26007: missing validation can lead to security issues for signature verification (ECDSA) and shared key negotiation (ECDH) (bsc#1258074).\n","status":"published","published":"2026-04-10T11:26:32Z","modified":"2026-04-22T18:25:16.077368Z","updated_at":"2026-11-02T15:54:02.312556Z"}]}}
