[CLSA-2026:1791528351] Fix CVE(s): CVE-2026-19445, CVE-2026-19553
Type:
security
Severity:
Critical
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.