CVE-2026-69249

python-cryptography: Duplicate self-signed intermediates can cause exponential path-building

Published Aug 3, 2026 CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
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.

Analysis

AI-generated

Technical 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.

Remediation

No solution or workaround provided in the CVE record.

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
Ubuntu USN Ubuntu USN USN-8776-1 python-cryptography vulnerabilities
History
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
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
First Time appeared Pyca
Pyca cryptography
Vendors & Products Pyca
Pyca cryptography
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'}

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Sep 4, 2026, 9:20 PM
Reserved
Aug 3, 2026, 7:54 PM
Status
Awaiting Analysis
Published
Aug 3, 2026, 10:16 PM
Modified
Oct 23, 2026, 9:10 PM