Release date:
2026-10-27 15:08:56 UTC
Description:
* SECURITY UPDATE: ssl accepted TLS certificate chains signed by eMudhra
intermediate CAs whose private keys were compromised (CWE-295). An
attacker holding one of those keys can mint a certificate for any name
that still chains to a publicly trusted root, and every ssl client keeps
accepting it until the distrust reaches the platform root store, the
container image, or a CA bundle vendored inside a Python package.
- debian/patches/CVE-2026-115557.patch: backport of cpython
gh-160040 / GH-160042, which adds Modules/_ssl/distrusted_spki.h - a
denylist of the SHA-256 digests of the eight compromised
SubjectPublicKeyInfo structures - and enforces it from a new
_ssl_verify_callback() in Modules/_ssl.c, rejecting a matching chain
with X509_V_ERR_CERT_REJECTED. Matching the public key rather than a
certificate fingerprint also covers cross-signs that reuse one of those
keys. Upstream shipped this in 3.11.18/3.12.16/3.13.18/3.14.10/3.15.2
only, so 3.9 needs it carried. The header keeps its upstream path,
since 3.9 already has a Modules/_ssl/ directory. _set_verify_mode()
installs the new callback in place of 3.9's "keep current verify cb"
block, which matches upstream's end state because nothing else installs
a context-level verify callback. Upstream's newPySSLSocket() hunk is
already present in 3.9 verbatim. The Makefile.pre.in MODULE__SSL_DEPS
hunk becomes an entry in the _ssl extension's depends list in setup.py,
since 3.9 builds extensions from setup.py. X509_V_ERR_UNSPECIFIED gets
an #ifndef fallback to its OpenSSL value (1) for el7's OpenSSL 1.0.2.
Upstream's tests are not carried: they need the encrypted
Lib/test/certdata/distrusted.zip fixture and the Lib/test/certdata
layout that 3.9 does not have.
- CVE-2026-115557
Updated packages:
-
alt-python39_3.9.23-34_amd64.deb
sha:e632934258a0b4bc3ec8e2fbf828ea705a139ea2
-
alt-python39-debug_3.9.23-34_amd64.deb
sha:e2ab37c66b189c681343401b56c7775c90036a55
-
alt-python39-devel_3.9.23-34_amd64.deb
sha:bbf524487af8b3b71c37384d609a12aff46dd7c5
-
alt-python39-idle_3.9.23-34_amd64.deb
sha:9334f4c23351ee0bbd00a70978a3b56a1169f333
-
alt-python39-libs_3.9.23-34_amd64.deb
sha:f1d18bb27fb2160c07d12ab968027e29039b7607
-
alt-python39-test_3.9.23-34_amd64.deb
sha:e0eb1d6365db0d52f994463bcb2992828d8a7cd1
-
alt-python39-tkinter_3.9.23-34_amd64.deb
sha:a37fc0b2fc640872e74e16270895d9621e2e751a
-
alt-python39_3.9.23-34_arm64.deb
sha:d180fee0667048e244e3a513902e98d5969feefd
-
alt-python39-debug_3.9.23-34_arm64.deb
sha:6de9963a4cf2c2fd716ff09a5091fbe1e809af00
-
alt-python39-devel_3.9.23-34_arm64.deb
sha:441d1da5bdd233f3135e0ee21fe75d1588512793
-
alt-python39-idle_3.9.23-34_arm64.deb
sha:4e3d79941daa448c8bf32ce26dfa403e7e3233fc
-
alt-python39-libs_3.9.23-34_arm64.deb
sha:ed3f9580c81921eb17b075de61f8af741fce64d1
-
alt-python39-test_3.9.23-34_arm64.deb
sha:237fe13c345e5d5a05c632ddad8872ccd12b7da7
-
alt-python39-tkinter_3.9.23-34_arm64.deb
sha:15268dee7549a803b80a28a00d43b7f79f0638c3
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.