Release date:
2026-10-09 06:48:40 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:1bd323bc3fad43c0483c0e59a9fe43d45474c928
-
alt-python39-debug_3.9.23-33_amd64.deb
sha:6f8efa5822c7cb56d5cd17d04069226dd9357382
-
alt-python39-devel_3.9.23-33_amd64.deb
sha:aeabb943f66ba4cabd5760f77a044ec8749feec2
-
alt-python39-idle_3.9.23-33_amd64.deb
sha:e363dc512438ecc94a7bae8c29b5d1e1201cbf82
-
alt-python39-libs_3.9.23-33_amd64.deb
sha:09ebe6c3ce7342c950187e7e7f3a967a9e414ffe
-
alt-python39-test_3.9.23-33_amd64.deb
sha:c0b04ad8ef207e793d2d95e25d4f14aaec4471cc
-
alt-python39-tkinter_3.9.23-33_amd64.deb
sha:00442db1e39b19542f8ac7e9ebcb869793d393c4
-
alt-python39_3.9.23-33_arm64.deb
sha:1c5dbc0a1e45d890a467243fe91a58201389ee4a
-
alt-python39-debug_3.9.23-33_arm64.deb
sha:96b08d73c87ad978a9cd3280ba07bed5813f8c2e
-
alt-python39-devel_3.9.23-33_arm64.deb
sha:02fbe5ef9dc017a4986c54873804be40232e3b6f
-
alt-python39-idle_3.9.23-33_arm64.deb
sha:414bb59483e07257a4e5554275c0d8ae9b1f0d3c
-
alt-python39-libs_3.9.23-33_arm64.deb
sha:7c0b6fb65c6508baf776a7e68abe74b0301639de
-
alt-python39-test_3.9.23-33_arm64.deb
sha:18782a8504f65ddea4b2a217fa4ef882bc8b155e
-
alt-python39-tkinter_3.9.23-33_arm64.deb
sha:3657c9b10e824394b016519408921e6a6298a2c1
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.