Python cryptography
CVE-2026-26007
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify victim using SECT-curve ECDH/ECDSA
-
DeliveryCraft small-order public-key point
-
ExploitSubmit malicious key via load/from_encoded_point
-
ExecutionVictim computes [d]P without subgroup check
-
PersistRecover private-key bits mod small subgroup
-
ImpactForge ECDSA signatures or derive key
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
|
| Exploitation Conditions | Exploitation requires that the victim application use SECT binary elliptic curves (SECT163/233/283/409/571 K1/R1/R2) - not the default and commonly used SECP/prime curves - and that it process an attacker-supplied public key through one of the vulnerable entry points (EllipticCurvePublicNumbers.public_key()/public_key_from_numbers, from_encoded_point, load_der_public_key, or load_pem_public_key) in an ECDH or ECDSA operation. The strongest private-key bit leakage occurs on curves with cofactor greater than 1, exposing the least significant bits of the private key; in ECDSA the same weak keys allow signature forgery within the small subgroup. Limiting factors: only binary curves are affected (vendor states these are rarely used in production), CVSS AC:H reflects that practical key recovery generally needs repeated interactions, and the attacker must be able to feed public-key input into the victim's ECDH/ECDSA path. No special authentication is required (PR:N) and no user interaction is needed (UI:N). |
| Impact | Signals point to a real but narrow-impact issue rather than a fire drill. The CVSS 4.0 base of 8.2 is driven by high confidentiality impact (VC:H, private-key disclosure) at network reach with no privileges, but is tempered by AC:H, which correctly reflects that exploitation only works against the uncommon SECT binary curves and typically requires repeated interactions to recover key bits. EPSS is essentially zero (0.01%, 0th percentile) and the issue is not on CISA KEV, consistent with no public exploit identified at time of analysis; the GitHub commit ships only negative test vectors (malformed keys that must raise ValueError), not a weaponized attack. The vendor itself notes binary curves are 'rarely used in real-world applications,' so the practical attack surface is small despite the high CVSS confidentiality rating. Net: patch on a normal cadence - this is not an emergency unless you specifically deploy ECDH/ECDSA over SECT curves with externally supplied public keys. |
| Exploit ScenarioDerived | An application uses cryptography to perform ECDH key agreement over a SECT (binary) curve and loads a peer's public key via load_pem_public_key() or from_encoded_point(); an attacker repeatedly presents crafted small-order points and observes derived behaviour, recovering the victim's private-key bits modulo the small subgroup order. Because the attack vector is network-based but high-complexity and limited to uncommon binary curves, it requires the victim to specifically use SECT curves with attacker-influenced peer keys; only negative test vectors, not a public exploit, exist at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv5 – Jun 30, 2026
Private-key information disclosure in the pyca/cryptography Python package (versions <= 46.0.4) arises because public-key loading and construction routines skip prime-order subgroup validation for SECT binary elliptic curves, letting an attacker submit a small-order point that leaks bits of a victim's private key during ECDH or enables signature forgery in ECDSA. Per the CVSS vector exploitation is unauthenticated and network-reachable (PR:N/AV:N) but high-complexity (AC:H), and only the rarely used SECT/binary curves are affected. There is no public exploit identified at time of analysis, EPSS risk is negligible (0.01%), and a fix is available in 46.0.5.
Earlier versions of this analysis (4)
Private-key information disclosure in the Python cryptography package (versions up to and including 46.0.4) arises because public-key loading paths (EllipticCurvePublicNumbers.public_key(), load_der_public_key(), and load_pem_public_key()) fail to validate that a supplied point lies in the curve's prime-order subgroup. An attacker who induces a victim to use an attacker-chosen public key on a binary SECT curve can supply a small-order point and recover the victim's private-key bits via ECDH shared-secret leakage, or forge ECDSA signatures within the small subgroup. Only the rarely used SECT (binary) curves are affected; no public exploit is identified at time of analysis and EPSS is just 0.01%.
Private-key disclosure and signature forgery in the Python 'cryptography' package before 46.0.5 arises because EC public-key loaders (public_key_from_numbers, EllipticCurvePublicNumbers.public_key(), load_der_public_key(), load_pem_public_key()) accept points without checking prime-order subgroup membership, enabling small-subgroup attacks against SECT (binary) curves. An attacker supplying a crafted low-order public key can leak the victim's private key modulo a small subgroup order through ECDH shared-secret computation, or forge ECDSA signatures within the small subgroup. There is no public exploit identified at time of analysis, EPSS is negligible (0.01%), the issue is not in CISA KEV, and a vendor patch (46.0.5) is available.
Private-key information disclosure in the Python cryptography package before 46.0.5 arises because EC public-key loaders (load_der_public_key, load_pem_public_key, EllipticCurvePublicNumbers.public_key()) fail to verify that a supplied point lies in the expected prime-order subgroup. An attacker who can feed a crafted small-order public key point can leak the victim's ECDSA/ECDH private-key bits modulo the small subgroup order, and forge ECDSA signatures within that subgroup. Only binary-field SECT curves (cofactor > 1) are affected; the issue is fixed in 46.0.5, has an EPSS of 0.01%, and has no public exploit identified at time of analysis.
Cryptography versions up to 46.0.5 is affected by insufficient verification of data authenticity (CVSS 6.5).
RemediationAI
Vendor-released patch: 46.0.5 - upgrade the cryptography package to 46.0.5 or later (for example, pin cryptography>=46.0.5 and rebuild/redeploy), which is the primary and complete fix per GHSA-r6ph-v2qm-q3c2 and commit 0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c. On managed distributions, apply the corresponding vendor errata instead (Red Hat RHSA-2026:6308/6309/6404/2694/5665/6568/6497/6567/5168, SUSE-SU-2026:20655/20706). If you cannot upgrade immediately, the effective compensating control is to stop using SECT/binary elliptic curves entirely - the package deprecates them in 46.0.5 and will remove them in the next release - and to avoid loading or accepting externally supplied EC public keys over those curves in ECDH/ECDSA flows; the trade-off is that any system genuinely depending on SECT curves must migrate to prime-field curves (e.g., SECP256R1) before disabling them. Where you control the input path, validate or reject untrusted public keys against the expected prime-order subgroup before use.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
cryptography exposes ECC primitives backed by OpenSSL through a Rust binding layer (src/rust/src/backend/ec.rs). The affected APIs - EllipticCurvePublicNumbers.public_key()/public_key_from_numbers, from_encoded_point(), load_der_public_key() and load_pem_public_key() - accepted an elliptic-curve point without confirming it lies in the curve's intended prime-order subgroup, the root-cause class captured by CWE-345 (Insufficient Verification of Data Authenticity). On curves with cofactor greater than 1 (the SECT binary-field curves SECT163K1/R2, SECT233K1/R1, SECT283K1/R1, SECT409K1/R1, SECT571K1/R1), an attacker-supplied small-order point P makes [d]P land in a tiny subgroup, so the result reveals d mod (small_subgroup_order) - classic invalid-curve/small-subgroup behaviour. The fix adds an ECPublicKey::new constructor that calls OpenSSL's check_key() whenever the cofactor is not 1, and additionally deprecates all SECT curves for removal. CPE confirms the affected component is cpe:2.3:a:cryptography.io:cryptography for the Python platform.
Know when Cryptography gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N) but high complexity (AC:H) since only uncommon SECT curves are affected and key recovery needs repeated interactions; impact is private-key disclosure (C:H) with no integrity/availability loss.
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
8DescriptionCVE.org
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 46.0.5, the public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve. This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup. Only SECT curves are impacted by this. This vulnerability is fixed in 46.0.5.
Executive ViewAI
The pyca/cryptography library used across Python application deployments contains a vulnerability (CVE-2026-26007) in versions up to 46.0.4 that enables private key disclosure and signature forgery on systems using SECT binary elliptic curves. Practical risk is constrained to this rare cryptography subset, requires high attack complexity, and carries negligible real-world exploitation probability (0.01% EPSS). Patching to version 46.0.5 is the immediate priority for any systems using this library.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
More in Cryptography
View allCertificate path building in python-cryptography before 49.0.0 is exploitable as a denial-of-service vector by attackers
PKCS#7 EnvelopedData decryption in the Python cryptography library (versions 44.0.0-49.x) leaks a Bleichenbacher oracle
The cryptography package before 41.0.2 for Python mishandles SSH certificates that have critical options. Rated high sev
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Rated high sever
Wildcard DNS SAN matching in python-cryptography's X.509 chain verifier prior to 49.0.0 allows a leaf certificate bearin
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Rated medium sev
HKDF in cryptography before 1.5.2 returns an empty byte-string if used with a length less than algorithm.digest_size. Ra
A flaw was found in the python-cryptography package. Rated high severity (CVSS 7.5), this vulnerability is remotely expl
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Rated high sever
A flaw was found in python-cryptography versions between >=1.9.0 and <2.3. Rated high severity (CVSS 7.5), this vulnerab
Same technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Medium| Product | Status |
|---|---|
| Image SL-Micro Image SL-Micro-Base-qcow Image SL-Micro-Default Image SL-Micro-Default-SelfInstall Image SL-Micro-Default-encrypted Image SL-Micro-Default-qcow Image SL-Micro-EC2 Image SLE-Micro Image SLE-Micro-Azure Image SLE-Micro-BYOS Image SLE-Micro-BYOS-Azure Image SLE-Micro-BYOS-EC2 Image SLE-Micro-BYOS-GCE Image SLE-Micro-EC2 Image SLE-Micro-GCE Image SUSE-Multi-Linux-Manager-Proxy-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Server-Azure-ltd Image SUSE-Multi-Linux-Manager-Server-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Server-EC2-llc Image SUSE-Multi-Linux-Manager-Server-EC2-ltd | Affected |
| SUSE Linux Micro 6.0 | Fixed |
| SUSE Linux Micro 6.1 | Fixed |
| openSUSE Tumbleweed | Fixed |
| SUSE Linux Enterprise Desktop 15 SP7 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Fixed |
| SUSE Linux Enterprise Micro 5.2 | Fixed |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 16.0 | Fixed |
| SUSE Linux Enterprise Server 16.1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Fixed |
| SUSE Linux Micro 6.0 | Fixed |
| SUSE Linux Micro 6.1 | Fixed |
| SUSE Linux Micro 6.2 | Fixed |
| openSUSE Leap 15.6 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Module for Public Cloud 15 SP4 | Fixed |
| SUSE Linux Enterprise Module for Python 3 15 SP4 | Fixed |
| SUSE Linux Enterprise Module for Python 3 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Fixed |
| SUSE Linux Enterprise Server 12 SP5 | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security | Fixed |
| SUSE Linux Enterprise Server 15 SP4 | Fixed |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP5 | Fixed |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP6 | Fixed |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Fixed |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Fixed |
| SUSE Manager Proxy 4.3 | Fixed |
| SUSE Manager Retail Branch Server 4.3 | Fixed |
| SUSE Manager Server 4.3 | Fixed |
| SUSE CaaS Platform 3.0 | Fixed |
| SUSE CaaS Platform 4.0 | Fixed |
| SUSE Enterprise Storage 6 | Fixed |
| SUSE Enterprise Storage 7 | Fixed |
| SUSE Enterprise Storage 7.1 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP2 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP3 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP1 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP2 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP3 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP5 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP6 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Fixed |
| SUSE Linux Enterprise Micro 5.0 | Fixed |
| SUSE Linux Enterprise Micro 5.1 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP1 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP2 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP3 | Fixed |
| SUSE Linux Enterprise Module for Public Cloud 15 SP1 | Fixed |
| SUSE Linux Enterprise Module for Python 2 15 SP2 | Fixed |
| SUSE Linux Enterprise Module for Python 2 15 SP3 | Fixed |
| SUSE Linux Enterprise Point of Sale 12 SP2-CLIENT | Fixed |
| SUSE Linux Enterprise Real Time 15 SP2 | Fixed |
| SUSE Linux Enterprise Real Time 15 SP3 | Fixed |
| SUSE Linux Enterprise Server 12 SP2 | Fixed |
| SUSE Linux Enterprise Server 12 SP2-BCL | Fixed |
| SUSE Linux Enterprise Server 12 SP2-ESPOS | Fixed |
| SUSE Linux Enterprise Server 12 SP2-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP3 | Fixed |
| SUSE Linux Enterprise Server 12 SP3-BCL | Fixed |
| SUSE Linux Enterprise Server 12 SP3-ESPOS | Fixed |
| SUSE Linux Enterprise Server 12 SP3-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP4 | Fixed |
| SUSE Linux Enterprise Server 12 SP4-ESPOS | Fixed |
| SUSE Linux Enterprise Server 12 SP4-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP1 | Fixed |
| SUSE Linux Enterprise Server 15 SP1-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP1-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP2 | Fixed |
| SUSE Linux Enterprise Server 15 SP2-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP3 | Fixed |
| SUSE Linux Enterprise Server 15 SP3-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Fixed |
| SUSE Linux Enterprise Server for Raspberry Pi 12 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP3 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Fixed |
| SUSE Manager Proxy 4.0 | Fixed |
| SUSE Manager Proxy 4.1 | Fixed |
| SUSE Manager Proxy 4.2 | Fixed |
| SUSE Manager Retail Branch Server 4.0 | Fixed |
| SUSE Manager Retail Branch Server 4.1 | Fixed |
| SUSE Manager Retail Branch Server 4.2 | Fixed |
| SUSE Manager Server 4.0 | Fixed |
| SUSE Manager Server 4.1 | Fixed |
| SUSE Manager Server 4.2 | Fixed |
| SUSE OpenStack Cloud 7 | Fixed |
| SUSE OpenStack Cloud 8 | Fixed |
| SUSE OpenStack Cloud 9 | Fixed |
| SUSE OpenStack Cloud Crowbar 8 | Fixed |
| SUSE OpenStack Cloud Crowbar 9 | Fixed |
| openSUSE Leap 15.3 | Fixed |
| openSUSE Leap 15.4 | Fixed |
| openSUSE Leap 15.5 | Fixed |
| openSUSE Leap Micro 5.2 | Fixed |
GHSA-r6ph-v2qm-q3c2
NVD
CVE.org
EPSS
VulDB
Exploit-DB