CVE-2026-115557
NoneCVSS
—
EPSS
0.5%
Published
Oct 24, 2026
CISA due date
—
Cloudanix analysis
Python now automatically blocks a list of known-bad certificates during secure web connections, reducing the chance that attackers can impersonate trusted sites even when extra safety checks are turned off.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Cryptographic Weakness
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
The ssl module previously permitted connections to servers presenting known-compromised certificates when certificate revocation checking was not explicitly enabled in the SSLContext.
Why it matters to the business
Organizations relying on Python applications for secure network communication face elevated risk of undetected use of stolen or fraudulent certificates, potentially leading to data interception or unauthorized access until the denylist is deployed.
How an attack unfolds
An attacker presents a certificate known to have been compromised; because the ssl module honors the application's SSLContext revocation policy, the connection succeeds and encrypted traffic can be decrypted or impersonated.
How to fix it
Upgrade to a Python release that includes the built-in denylist for compromised certificates; alternatively, enforce certificate revocation checking in all SSLContext instances and maintain an up-to-date local revocation store.
How to confirm the fix worked
After upgrade, attempt a TLS connection to a test endpoint that presents a known-compromised certificate and confirm the connection is rejected with an appropriate ssl.SSLError regardless of the verify_flags setting.
Typical attack path
- Identify a Python application performing TLS connections without mandatory revocation checking.
- Obtain or forge a certificate from the set of known-compromised certificates.
- Position a network interceptor or rogue server that presents the certificate during the TLS handshake.
- Establish a decrypted session with the victim application and exfiltrate or manipulate traffic.
How to detect it
Review application and system logs for successful TLS handshakes that later show certificate anomalies; search for Python processes establishing outbound connections to hosts whose certificates match entries on public compromised-certificate lists.
What your security team should do
- Prioritize patching all Python runtimes used for outbound TLS within the next 30 days.
- Audit codebases for explicit creation of SSLContext objects and ensure revocation is enabled where the denylist cannot yet be applied.
- Add the new certificate denylist behavior to security regression test suites.
The record
Python has added a denylist for known compromised certificates to the "ssl" module to ensure user safety even without certificate revocation configured. Known compromised certificates will automatically be rejected regardless of the SSLContext policy configuration.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-118696 In JetBrains IntelliJ IDEA, PyCharm, PhpStorm, RubyMine and WebStorm before 2026.3… CWE-299
- CVE-2026-115570 Electron is a framework for writing cross-platform desktop applications using JavaScript… CWE-299
- CVE-2026-111943 On most platforms, Go uses the given system root certificates. CWE-299
- CVE-2026-86231 A security flaw has been discovered in mwiede jsch up to 2.28.5. CWE-299
- CVE-2026-61699 nebula-mesh is a self-hosted control plane for Slack Nebula mesh VPN. CWE-299
- CVE-2026-56821 Netty is an asynchronous, event-driven network application framework. CWE-299
- CVE-2026-9636 A security issue exists within CompactLogix® 5380, ControlLogix® 5580, and EN4… CWE-299
- CVE-2026-6899 Check for certificate revocation only considers the first matching CRL and ignores other… CWE-299