Release date:
2026-10-09 06:46:06 UTC
Description:
* SECURITY UPDATE: use-after-free of a server-side ssl.SSLContext when an
sni_callback switches the connection to another context.
_servername_callback() in Modules/_ssl.c reached the _SSLContext through
the borrowed pointer stored with SSL_CTX_set_tlsext_servername_arg() and
held no reference to it or to its callback. Assigning a new context to
SSLSocket.context from the callback could drop the original context's
last reference, after which the C code used freed memory - via
PyErr_WriteUnraisable() after a raising callback, and on a second
ClientHello (TLS 1.3 HelloRetryRequest) through the stale session_ctx.
- debian/patches/CVE-2026-19445.patch: backport of cpython
ec44b5a3258cbda947d5e07242ee562ed05ef24b (3.10 branch, gh-156293,
GH-158504): look the context up from the SSL object and hold strong
references to it and to the callback, stop installing the borrowed
servername arg, and unregister the servername callback in
context_dealloc(). Py_NewRef()/Py_IS_TYPE()/module state do not exist
in 3.8 and were replaced by Py_INCREF()/PySSLSocket_Check(). Includes
the upstream regression tests in Lib/test/test_ssl.py.
- CVE-2026-19445
* SECURITY UPDATE: ssl.SSLContext.wrap_bio() skipped hostname verification
when check_hostname was enabled but no server_hostname was given
(CWE-295). SSLObject._create() lacked the "check_hostname requires
server_hostname" check that wrap_socket() performs, so memory-BIO users
such as asyncio loop.start_tls() and create_connection(...,
server_hostname='') verified the certificate chain but never the peer's
identity.
- debian/patches/CVE-2026-19553.patch: backport of cpython
1697ea386c707142555d98a1263176bbbc014a96 (gh-156793, GH-158503; 3.13
f4e43ba525187282f2011da0e6ffc0d2b08d8062), which adds
_check_sslobject_params() to Lib/ssl.py and calls it from both
SSLObject._create() and SSLSocket._create(), so wrap_bio() raises
ValueError like wrap_socket(). The 3.10-3.12 branches only warn with a
DeprecationWarning, which still skips the check, so the ValueError
behaviour was taken. Includes the upstream test_ssl tests and
test_sslproto tests rewritten for 3.8's connection_made()-time
wrap_bio().
- CVE-2026-19553
Updated packages:
-
alt-python38_3.8.20-32_amd64.deb
sha:e7efe52da5d31ad1fe4d1472448cb60d8b370dc0
-
alt-python38-debug_3.8.20-32_amd64.deb
sha:b365bad60144ee89f367f0a4421e702b14e53977
-
alt-python38-devel_3.8.20-32_amd64.deb
sha:5bc7716a157124841f756611f87692f8530db1a3
-
alt-python38-idle_3.8.20-32_amd64.deb
sha:2ea47406c2eb9858c728a411f9d7e033fc1f1a9e
-
alt-python38-libs_3.8.20-32_amd64.deb
sha:bb1e335ef568361bd1ed38ffdd936602a765e222
-
alt-python38-test_3.8.20-32_amd64.deb
sha:dc602ba1e361db624608c49e87bd2778dbc25f25
-
alt-python38-tkinter_3.8.20-32_amd64.deb
sha:295505538e06babe2fbe7e320a4412136c690fc4
-
alt-python38_3.8.20-32_arm64.deb
sha:4c83ad743ec4c88857d2573799cbf55563d910ec
-
alt-python38-debug_3.8.20-32_arm64.deb
sha:c45ec22f34b658f86452b7a8d623b1766c7913c5
-
alt-python38-devel_3.8.20-32_arm64.deb
sha:d09d03482d54e138f24b6318701c16d4082a38eb
-
alt-python38-idle_3.8.20-32_arm64.deb
sha:9b28f0591f760b2424760e1cb9e00c417ad8b34f
-
alt-python38-libs_3.8.20-32_arm64.deb
sha:ebafde8a1d6f53dc788d6c4ccd072a7bebd6eaea
-
alt-python38-test_3.8.20-32_arm64.deb
sha:300acd083b20b27aa237a079355dc07aa35cf958
-
alt-python38-tkinter_3.8.20-32_arm64.deb
sha:25aa82ecacda180ceb891850dcceaa4934448637
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.