CVE-2026-26007

6.5 MEDIUM

📋 TL;DR

This vulnerability in the Python cryptography package allows attackers to provide specially crafted public keys from small-order subgroups, bypassing validation. When exploited, it can leak private key information during ECDH key exchange or enable signature forgery in ECDSA. Only users of affected cryptography versions implementing ECDH or ECDSA with SECT curves are impacted.

💻 Affected Systems

Products:
  • Python cryptography package
Versions: All versions before 46.0.5
Operating Systems: All operating systems running Python
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects SECT curves (SECP256K1, SECP384R1, SECP521R1) when using ECDH or ECDSA. Other curves and algorithms are not impacted.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete private key compromise through repeated ECDH operations, enabling impersonation, data decryption, and signature forgery.

🟠

Likely Case

Partial private key leakage (least significant bits) during ECDH key exchange, weakening cryptographic security.

🟢

If Mitigated

No impact if systems are patched or don't use affected SECT curves for ECDH/ECDSA operations.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires the attacker to provide a malicious public key, which could be done through various protocols using ECDH/ECDSA.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 46.0.5

Vendor Advisory: https://github.com/pyca/cryptography/security/advisories/GHSA-r6ph-v2qm-q3c2

Restart Required: No

Instructions:

1. Update cryptography package: pip install --upgrade cryptography==46.0.5
2. Verify installation: pip show cryptography
3. Restart any Python applications using cryptography.

🔧 Temporary Workarounds

Avoid SECT curves

all

Temporarily switch to non-SECT curves (like NIST P-256, P-384, P-521) for ECDH/ECDSA operations

🧯 If You Can't Patch

  • Implement additional validation of public keys before use in cryptographic operations
  • Monitor for unusual cryptographic operations or failed key validations

🔍 How to Verify

Check if Vulnerable:

Check cryptography version: python -c "import cryptography; print(cryptography.__version__)"

Check Version:

python -c "import cryptography; print(cryptography.__version__)"

Verify Fix Applied:

Verify version is 46.0.5 or higher: python -c "import cryptography; print(cryptography.__version__ >= '46.0.5')"

📡 Detection & Monitoring

Log Indicators:

  • Failed cryptographic operations
  • Unusual key validation errors
  • Multiple failed ECDH handshakes

Network Indicators:

  • Repeated failed TLS/SSL handshakes using ECDHE
  • Unusual public key sizes or formats

SIEM Query:

Search for cryptography package version <46.0.5 in system inventory logs

🔗 References

📤 Share & Export