Description
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.
Published: 2026-08-03
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service (Availability)
Action: Patch Promptly
AI Analysis

Impact

When the cryptography library evaluates certificate chains that contain duplicate self‑signed certificates, its recursive build_chain_inner routine repeatedly processes the same candidate, creating an exponential growth of decision paths. The chain‑depth limit stops unbounded recursion, but an attacker can craft a chain that forces the validator to spend several seconds—often more than five—on a single chain. This amplification is sufficient to cause a denial of service through resource exhaustion. The flaw does not alter the correctness of validation, so integrity and confidentiality are not compromised; only availability is affected.

Affected Systems

The issue affects the pyca:cryptography package in any version before 49.0.0. Systems that rely on this library for TLS or other cryptographic operations—including web servers, client applications, and automated scripts—are potentially impacted if they use an unpatched version.

Risk and Exploitability

The vulnerability has a CVSS score of 8.7, indicating high severity. An EPSS score of less than 1% suggests a very low but non‑zero probability of exploitation in the wild, and the issue is not listed in CISA’s KEV catalog. An attacker can craft a duplicate self‑signed certificate chain and present it to a system that performs certificate validation using a vulnerable cryptography library. The processing routine will spend excessive time—commonly exceeding five seconds—on the chain, consuming CPU resources and leading to a denial of service. The vulnerability is exploitable whenever the library is invoked during TLS handshakes, certificate verification in client or server applications, or other routines that perform chain construction, but it does not allow compromise of confidentiality or integrity.

Generated by OpenCVE AI on September 4, 2026 at 22:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the cryptography package to version 49.0.0 or later in every Python environment.
  • If updating is delayed, configure your TLS clients or servers to enforce a strict maximum chain length or to reject chains containing duplicate self‑signed certificates before invoking the library.
  • Add a timeout or watchdog around certificate validation routines to terminate processing that exceeds a reasonable duration.

Generated by OpenCVE AI on September 4, 2026 at 22:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jwv3-5hgf-82ww python-cryptography: Duplicate self-signed intermediates can cause exponential path-building
History

Fri, 04 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Description python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 49.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. 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.
References

Tue, 04 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 03 Aug 2026 22:45:00 +0000

Type Values Removed Values Added
First Time appeared Pyca
Pyca cryptography
Vendors & Products Pyca
Pyca cryptography

Mon, 03 Aug 2026 21:45:00 +0000

Type Values Removed Values Added
Description python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 49.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.
Title python-cryptography: Duplicate self-signed intermediates can cause exponential path-building
Weaknesses CWE-400
References
Metrics cvssV4_0

{'score': 8.7, 'vector': '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'}


Subscriptions

Pyca Cryptography
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-04T21:20:32.666Z

Reserved: 2026-08-03T19:54:19.852Z

Link: CVE-2026-69249

cve-icon Vulnrichment

Updated: 2026-08-04T14:08:53.909Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-08-03T22:16:52.720

Modified: 2026-09-10T20:36:14.340

Link: CVE-2026-69249

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T22:45:04Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption