CVE-2026-26007: CWE-345: Insufficient Verification of Data Authenticity in pyca cryptography
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.
AI Analysis
Technical Summary
The vulnerability identified as CVE-2026-26007 affects the pyca cryptography Python package, specifically versions before 46.0.5. The flaw is due to insufficient verification of data authenticity (CWE-345) in elliptic curve cryptographic functions: public_key_from_numbers, EllipticCurvePublicNumbers.public_key(), load_der_public_key(), and load_pem_public_key(). These functions fail to verify that the provided elliptic curve point belongs to the expected prime-order subgroup, particularly impacting SECT (binary) curves with cofactor greater than one. An attacker can exploit this by supplying a public key point from a small-order subgroup. In ECDH key exchange, when the victim computes the shared secret S = [victim_private_key]P, the use of a small-order point leaks information about the victim's private key modulo the small subgroup order, revealing least significant bits of the private key. In ECDSA signature verification, this flaw allows forging signatures on the small subgroup, undermining signature integrity. The vulnerability does not require authentication or user interaction but does require the victim to process attacker-supplied public keys. The CVSS 4.0 score is 8.2 (high severity) with network attack vector, high complexity, and no privileges or user interaction needed. The vulnerability is fixed in pyca cryptography version 46.0.5 by adding proper subgroup membership validation. No known exploits are reported in the wild yet.
Potential Impact
For European organizations, this vulnerability poses significant risks to the confidentiality and integrity of cryptographic operations relying on pyca cryptography with SECT curves. Leakage of private key bits during ECDH key exchange can lead to full key recovery over time, compromising encrypted communications and key negotiation processes. Forged ECDSA signatures can allow attackers to bypass authentication or non-repudiation mechanisms, potentially enabling unauthorized access, fraudulent transactions, or code signing bypasses. Organizations using Python applications for secure communications, authentication, or cryptographic protocols that depend on pyca cryptography are at risk. The impact is especially critical for sectors handling sensitive data such as finance, healthcare, government, and critical infrastructure. The vulnerability could undermine trust in cryptographic assurances and lead to data breaches or operational disruptions if exploited.
Mitigation Recommendations
European organizations should immediately upgrade pyca cryptography to version 46.0.5 or later to ensure proper subgroup membership validation. They should audit their Python codebases and dependencies to identify usage of vulnerable versions, especially in applications performing ECDH or ECDSA operations on SECT curves. Where upgrading is not immediately possible, organizations should consider disabling support for SECT curves or implementing additional validation checks at the application level to verify public key points belong to the correct subgroup. Security teams should monitor for suspicious cryptographic operations or anomalies in signature verification and key exchange processes. Incorporating cryptographic best practices such as using curves with cofactor 1 (e.g., prime curves like P-256) can reduce exposure. Finally, organizations should review their incident response plans to address potential cryptographic key compromise scenarios.
Affected Countries
Germany, France, United Kingdom, Netherlands, Italy, Spain, Sweden, Belgium, Poland, Finland
CVE-2026-26007: CWE-345: Insufficient Verification of Data Authenticity in pyca cryptography
Description
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.
AI-Powered Analysis
Technical Analysis
The vulnerability identified as CVE-2026-26007 affects the pyca cryptography Python package, specifically versions before 46.0.5. The flaw is due to insufficient verification of data authenticity (CWE-345) in elliptic curve cryptographic functions: public_key_from_numbers, EllipticCurvePublicNumbers.public_key(), load_der_public_key(), and load_pem_public_key(). These functions fail to verify that the provided elliptic curve point belongs to the expected prime-order subgroup, particularly impacting SECT (binary) curves with cofactor greater than one. An attacker can exploit this by supplying a public key point from a small-order subgroup. In ECDH key exchange, when the victim computes the shared secret S = [victim_private_key]P, the use of a small-order point leaks information about the victim's private key modulo the small subgroup order, revealing least significant bits of the private key. In ECDSA signature verification, this flaw allows forging signatures on the small subgroup, undermining signature integrity. The vulnerability does not require authentication or user interaction but does require the victim to process attacker-supplied public keys. The CVSS 4.0 score is 8.2 (high severity) with network attack vector, high complexity, and no privileges or user interaction needed. The vulnerability is fixed in pyca cryptography version 46.0.5 by adding proper subgroup membership validation. No known exploits are reported in the wild yet.
Potential Impact
For European organizations, this vulnerability poses significant risks to the confidentiality and integrity of cryptographic operations relying on pyca cryptography with SECT curves. Leakage of private key bits during ECDH key exchange can lead to full key recovery over time, compromising encrypted communications and key negotiation processes. Forged ECDSA signatures can allow attackers to bypass authentication or non-repudiation mechanisms, potentially enabling unauthorized access, fraudulent transactions, or code signing bypasses. Organizations using Python applications for secure communications, authentication, or cryptographic protocols that depend on pyca cryptography are at risk. The impact is especially critical for sectors handling sensitive data such as finance, healthcare, government, and critical infrastructure. The vulnerability could undermine trust in cryptographic assurances and lead to data breaches or operational disruptions if exploited.
Mitigation Recommendations
European organizations should immediately upgrade pyca cryptography to version 46.0.5 or later to ensure proper subgroup membership validation. They should audit their Python codebases and dependencies to identify usage of vulnerable versions, especially in applications performing ECDH or ECDSA operations on SECT curves. Where upgrading is not immediately possible, organizations should consider disabling support for SECT curves or implementing additional validation checks at the application level to verify public key points belong to the correct subgroup. Security teams should monitor for suspicious cryptographic operations or anomalies in signature verification and key exchange processes. Incorporating cryptographic best practices such as using curves with cofactor 1 (e.g., prime curves like P-256) can reduce exposure. Finally, organizations should review their incident response plans to address potential cryptographic key compromise scenarios.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-02-09T21:36:29.552Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 698ba7284b57a58fa12c897a
Added to database: 2/10/2026, 9:46:16 PM
Last enriched: 2/18/2026, 9:48:11 AM
Last updated: 2/20/2026, 11:09:08 PM
Views: 1648
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Related Threats
CVE-2026-27190: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in denoland deno
HighCVE-2026-27026: CWE-770: Allocation of Resources Without Limits or Throttling in py-pdf pypdf
MediumCVE-2026-27025: CWE-834: Excessive Iteration in py-pdf pypdf
MediumCVE-2026-27024: CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop') in py-pdf pypdf
MediumCVE-2026-27022: CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') in langchain-ai langgraphjs
MediumActions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console in Console -> Billing for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.