CVE-2026-19445
Description
A remote, unauthenticated TLS client can make a server crash or call through a freed pointer if its sni_callback assigns a different context to SSLSocket.context (the documented way to select a certificate per server name) and nothing else keeps the original ssl.SSLContext alive. Typical cases are servers that create an SSLContext per connection or replace it while connections are open; servers that wrap their listening socket with it are not affected. Mitigation: keep a reference to every SSLContext that sets sni_callback for the lifetime of the server. TLS clients are not affected.
How to fix
- Python Software Foundation CPython3.10.22, 3.11.17, 3.12.15, 3.13.16, 3.14.8, 3.15.0rc3 or later
- github.com/python/cpython/pull/158504
- github.com/python/cpython/commit/34a53dce8174da2fceb12fe084a4def02a10053d
- github.com/python/cpython/commit/46133cd57d309652139ada74014aca7665ac552b
- github.com/python/cpython/commit/63fab143d94cafae71850831acfb52041ba44af7
- github.com/python/cpython/commit/cd7e51e7d4563866fbaa1e2521ae69b45daf3698
- github.com/python/cpython/commit/d8717ed01717a9641686e6e6f83f0ab8af235e2c
- github.com/python/cpython/commit/b12968cefe69ca1dcb8606c832ff73ee7dbf4ba8
- github.com/python/cpython/commit/ec44b5a3258cbda947d5e07242ee562ed05ef24b
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Python Software Foundation CPython | v < 3.10.22, 3.11.0 ≤ v < 3.11.17, 3.12.0 ≤ v < 3.12.15, 3.13.0 ≤ v < 3.13.16, 3.14.0 ≤ v < 3.14.8, 3.15.0a1 ≤ v < 3.15.0rc3 | 3.10.22, 3.11.17, 3.12.15, 3.13.16, 3.14.8, 3.15.0rc3 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.