Skip to content

[3.13] gh-160040: Distrust compromised eMudhra intermediate CA keys (CVE-2026-115557) (GH-160042) - #160570

Merged
Yhg1s merged 1 commit into
python:3.13from
gpshead:backport-7dd8b47-3.13
Oct 24, 2026
Merged

Yhg1s merged 1 commit into
python:3.13from
gpshead:backport-7dd8b47-3.13

Conversation

@gpshead

@gpshead gpshead commented Oct 24, 2026

Copy link
Copy Markdown
Member

(cherry picked from commit 7dd8b47)

Co-authored-by: Christian Heimes christian@python.org

Manual backport notes (3.13): 3.13's Lib/test/certdata/make_ssl_certs.py predates the argparse cmdlineargs refactor, so make_distrusted_spki_cert() takes no arguments and uses the script's module-level enddate and the literal '7000' days that the rest of the 3.13 script uses (3.13's req_template has no {days} placeholder). Makefile.pre.in and PCbuild/_ssl.vcxproj{,.filters} add only Modules/_ssl/distrusted_spki.h (main's _openssl_mem.h is main-only), plus the Header Files filter definition. Modules/_ssl.c, Lib/test/test_ssl.py, the NEWS entry, distrusted_spki.h and distrusted.zip are identical to main. test_ssl, test_asyncio.test_ssl and test_asyncio.test_sslproto pass, including test_distrusted_spki.

…keys (CVE-2026-115557) (pythonGH-160042)

The ssl module now rejects TLS certificate chains that contain any of a set of
compromised eMudhra intermediate CA keys.  This is an extraordinary measure and
a last line of defense: removing trust is primarily the job of the platform root
store, and the built-in denylist only blocks connections while that update has
not yet reached the OS, a container image, or a bundled trust store in various
Python packages.  Entries are added to the denylist only under a very high
threshold.

The denylist matches on the public key (the SHA-256 digest of the RFC-5280
SubjectPublicKeyInfo), so it also covers the cross-signed certificates that
reuse one of the distrusted keys.

---------

Signed-off-by: Christian Heimes <christian@python.org>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

(cherry picked from commit 7dd8b47)

Co-authored-by: Christian Heimes <christian@python.org>
@bedevere-app bedevere-app Bot added the type-security A security issue label Oct 24, 2026
@gpshead gpshead closed this Oct 24, 2026
@gpshead gpshead reopened this Oct 24, 2026
@gpshead
gpshead marked this pull request as ready for review October 24, 2026 07:12
@gpshead
gpshead requested a review from a team as a code owner October 24, 2026 07:12
@Yhg1s
Yhg1s merged commit 98f0e4e into python:3.13 Oct 24, 2026
56 of 66 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Development

Successfully merging this pull request may close these issues.

3 participants