Release date:
2026-10-27 12:12:39 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:408e3e4ca0648b51df7e4119b982dd7466b6cc8e
-
alt-python39-debug_3.9.23-34_amd64.deb
sha:e2ab37c66b189c681343401b56c7775c90036a55
-
alt-python39-devel_3.9.23-34_amd64.deb
sha:ca9fe7b68ffb35a5ae5f8f80e2cd02fcdef956d1
-
alt-python39-idle_3.9.23-34_amd64.deb
sha:816fd46c905c321fbf6c65706b39cf04366a1046
-
alt-python39-libs_3.9.23-34_amd64.deb
sha:a380b68024acd85cf595d124c17a46b07f0bd55f
-
alt-python39-test_3.9.23-34_amd64.deb
sha:823b4a5bc9e5b08d5ed1280234252b6e1e805dc3
-
alt-python39-tkinter_3.9.23-34_amd64.deb
sha:9fe918ef5f100e3e5f5dedd7e6cfdbbc0b48b8a6
-
alt-python39_3.9.23-34_arm64.deb
sha:97e7394cfd5e716c2fd72ed9a856300ee96129e9
-
alt-python39-debug_3.9.23-34_arm64.deb
sha:6de9963a4cf2c2fd716ff09a5091fbe1e809af00
-
alt-python39-devel_3.9.23-34_arm64.deb
sha:f9d2f4fa6bc5c2fd77a37fa8fbaeca3ea8963daa
-
alt-python39-idle_3.9.23-34_arm64.deb
sha:7acf009481c9038716bdf739c7b9a89aad541a63
-
alt-python39-libs_3.9.23-34_arm64.deb
sha:129749d0e1fa055f7ce9fd10bfe6e9f4f2fe6f09
-
alt-python39-test_3.9.23-34_arm64.deb
sha:73be5bb2fb860dff1b368a0a4ef5e70d20c497e9
-
alt-python39-tkinter_3.9.23-34_arm64.deb
sha:c2926f4bdc695410fa555560feec29124ba8ed74
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.