{"id":"CVE-2026-69249","summary":"python-cryptography: Duplicate self-signed intermediates can cause exponential path-building","details":"python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 42.0.0 through 48.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0.","aliases":["GHSA-jwv3-5hgf-82ww","PYSEC-2026-3553"],"modified":"2026-09-29T18:26:42.511222751Z","published":"2026-08-03T21:26:45.826Z","related":["ALSA-2026:64774","ALSA-2026:64795","ALSA-2026:71658","SUSE-SU-2026:23196-1","SUSE-SU-2026:23247-1","SUSE-SU-2026:23404-1","SUSE-SU-2026:23570-1","openSUSE-SU-2026:21685-1"],"database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-400"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/69xxx/CVE-2026-69249.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/69xxx/CVE-2026-69249.json"},{"type":"ADVISORY","url":"https://github.com/pyca/cryptography/security/advisories/GHSA-jwv3-5hgf-82ww"},{"type":"ADVISORY","url":"https://github.com/pypa/advisory-database/tree/main/vulns/cryptography/PYSEC-2026-3553.yaml"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-69249"},{"type":"FIX","url":"https://github.com/pyca/cryptography/commit/3763aa79b"},{"type":"FIX","url":"https://github.com/pyca/cryptography/commit/4a12cf49675a184e47f912b00b04f3a629283582"},{"type":"FIX","url":"https://github.com/pyca/cryptography/pull/14960"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/pyca/cryptography","events":[{"introduced":"4e64baf360a3a89bd92582f59344c12b5c0bd3fd"},{"fixed":"e300bbe2f1bec75e5ee7e0ab7b196958831b3db6"}],"database_specific":{"extracted_events":[{"introduced":"42.0.0"},{"fixed":"49.0.0"}],"source":"AFFECTED_FIELD"}}],"versions":["48.0.0","47.0.0","46.0.1","46.0.0","45.0.0","44.0.0","43.0.0","42.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-69249.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}