Release date:
2026-10-09 07:18:35 UTC
Description:
* SECURITY UPDATE: use-after-free of a server-side SSLContext when an
sni_callback switches the connection to another context.
_servername_callback() in Modules/_ssl.c reached the Python SSLContext
through the borrowed pointer stored with
SSL_CTX_set_tlsext_servername_arg() and held no reference to it. When
the callback assigned a different context to SSLSocket.context and
nothing else kept the original alive, the C code then used freed memory:
in PyErr_WriteUnraisable() after a raising callback, and when OpenSSL
re-entered the callback through the connection's session_ctx on a second
ClientHello (e.g. after a TLS 1.3 HelloRetryRequest). Remote,
unauthenticated, before the handshake completes.
- debian/patches/CVE-2026-19445.patch: backport of cpython
46133cd57d309652139ada74014aca7665ac552b (gh-156293), which takes the
context from the socket and holds strong references to it and to its
sni_callback while the callback runs, no longer registers the borrowed
servername arg, and clears the servername callback in
context_dealloc(). Py_NewRef()/Py_XNewRef() are spelled as
Py_INCREF()/Py_XINCREF() and the get_state_ctx() type assert as
PySSLSocket_Check(), since 3.9 has neither. Includes upstream's
regression tests in Lib/test/test_ssl.py.
- CVE-2026-19445
* SECURITY UPDATE: SSLContext.wrap_bio() did not require server_hostname
when check_hostname was True (CWE-295). SSLObject._create() in
Lib/ssl.py skipped the parameter checks wrap_socket() performs, so a
memory-BIO SSLObject - and asyncio loop.start_tls() /
create_connection(sock=...) through asyncio/sslproto.py - created with no
server_hostname verified the certificate chain but silently skipped
hostname verification.
- debian/patches/CVE-2026-19553.patch: backport of cpython
966bf426d0b6c31c1b0a255ff14a17143a466ced (gh-156793), which adds
_check_sslobject_params() and calls it from both SSLObject._create()
and SSLSocket._create(), so wrap_bio() now raises ValueError like
wrap_socket(). Includes upstream's tests in Lib/test/test_ssl.py; the
asyncio tests are adapted to 3.9's _SSLPipe-based sslproto.
- CVE-2026-19553
Updated packages:
-
alt-python39_3.9.23-33_amd64.deb
sha:857af3c547c9cbb25ba16c8a0f56e493ef2fe7fd
-
alt-python39-debug_3.9.23-33_amd64.deb
sha:6f8efa5822c7cb56d5cd17d04069226dd9357382
-
alt-python39-devel_3.9.23-33_amd64.deb
sha:c3ab86b16576b06e7d97e8f9a1a107837b7f9685
-
alt-python39-idle_3.9.23-33_amd64.deb
sha:a109dca245d91f61d252ddd73c91b9a729abc46c
-
alt-python39-libs_3.9.23-33_amd64.deb
sha:d3101129001bebfeea4e1c2e56864b2e72a83866
-
alt-python39-test_3.9.23-33_amd64.deb
sha:633cca6725157387c5add2fe555931688bd51ddc
-
alt-python39-tkinter_3.9.23-33_amd64.deb
sha:83a15b92fc16ece362e10270d4deaaef6af92e9e
-
alt-python39_3.9.23-33_arm64.deb
sha:c43a722e18c2b751941a4350e31d096be0128f66
-
alt-python39-debug_3.9.23-33_arm64.deb
sha:96b08d73c87ad978a9cd3280ba07bed5813f8c2e
-
alt-python39-devel_3.9.23-33_arm64.deb
sha:d8daa47a77d880952208ec5cbcd968241dc58f5e
-
alt-python39-idle_3.9.23-33_arm64.deb
sha:dfcd528f5c6fb45dc8e7777546a96385810e9b3d
-
alt-python39-libs_3.9.23-33_arm64.deb
sha:c67eecdc49f4876a3592f503f5b63eecde1e5408
-
alt-python39-test_3.9.23-33_arm64.deb
sha:6bde42ee353c5f9540dd75f61832f909250d54ca
-
alt-python39-tkinter_3.9.23-33_arm64.deb
sha:8438fb1572c7494ecb3a88b918f0beead043428a
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.