python3.12-3.12.15-1.el9_8
エラータID: AXSA:2026-2025:25
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
* python: python: Certificate verification bypass via missing server_hostname validation in SSLContext.wrap_bio() (CVE-2026-19553)
* python: Use-after-free of a server-side SSLContext when sni_callback switches contexts (CVE-2026-19445)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
CVE-2026-19445
A remote, unauthenticated TLS client can make a server crash or call through a freed pointer if its sni_callback assigns a different context to SSLSocket.context (the documented way to select a certificate per server name) and nothing else keeps the original ssl.SSLContext alive. Typical cases are servers that create an SSLContext per connection or replace it while connections are open; servers that wrap their listening socket with it are not affected. Mitigation: keep a reference to every SSLContext that sets sni_callback for the lifetime of the server. TLS clients are not affected.
CVE-2026-19553
ssl.SSLContext.wrap_bio() didn't require the server_hostname argument to not be None if ssl.SSLContext.check_hostname was set. Due to a missing parameter check in SSLObject, if the server_hostname argument isn't supplied then hostname verification would be silently skipped. This defect could lead to programs where certificate hostname verification *appeared* to be succeeding with SSLContext.check_hostname = True and no ValueError being raised due to misconfiguration. If the program passes a server_hostname value that isn't an empty string or None to any of these APIs then certificate hostname verification proceeds as expected and the program is not affected by this vulnerability. Mitigating this vulnerability doesn't require updating Python or applying the patch. To mitigate, pass a valid non-None and non-empty server_hostname value to SSLContext.wrap_bio(), asyncio.create_connection(), or asyncio.loop.start_tls() and certificate hostname verification will proceed as expected. Upgrading to the latest version of Python or applying the patch only changes the behavior from silently skipping hostname verification to raising a ValueError, similar to SSLContext.wrap_socket(), when server_hostname isn't supplied.
Update packages.
A remote, unauthenticated TLS client can make a server crash or call through a freed pointer if its sni_callback assigns a different context to SSLSocket.context (the documented way to select a certificate per server name) and nothing else keeps the original ssl.SSLContext alive. Typical cases are servers that create an SSLContext per connection or replace it while connections are open; servers that wrap their listening socket with it are not affected. Mitigation: keep a reference to every SSLContext that sets sni_callback for the lifetime of the server. TLS clients are not affected.
ssl.SSLContext.wrap_bio() didn't require the server_hostname argument to not be None if ssl.SSLContext.check_hostname was set. Due to a missing parameter check in SSLObject, if the server_hostname argument isn't supplied then hostname verification would be silently skipped. This defect could lead to programs where certificate hostname verification *appeared* to be succeeding with SSLContext.check_hostname = True and no ValueError being raised due to misconfiguration. If the program passes a server_hostname value that isn't an empty string or None to any of these APIs then certificate hostname verification proceeds as expected and the program is not affected by this vulnerability. Mitigating this vulnerability doesn't require updating Python or applying the patch. To mitigate, pass a valid non-None and non-empty server_hostname value to SSLContext.wrap_bio(), asyncio.create_connection(), or asyncio.loop.start_tls() and certificate hostname verification will proceed as expected. Upgrading to the latest version of Python or applying the patch only changes the behavior from silently skipping hostname verification to raising a ValueError, similar to SSLContext.wrap_socket(), when server_hostname isn't supplied.
N/A
SRPMS
- python3.12-3.12.15-1.el9_8.src.rpm
MD5: 19ab689330dbe0af4f31f548a8329b78
SHA-256: 80f63f4280ef7a0d3da6b537a5e693181f25d912f0feff45168ff93c572467ce
Size: 19.93 MB
Asianux Server 9 for x86_64
- python3.12-3.12.15-1.el9_8.i686.rpm
MD5: f1d4fd37c24b8b689b9af4503b4b0f46
SHA-256: 7201e400955c4787475678175d5a864d901139d42414810c39c9c5c78ff66cd5
Size: 25.65 kB - python3.12-3.12.15-1.el9_8.x86_64.rpm
MD5: 8f2138534647ac2aafefe09aeefa2c53
SHA-256: 8b89c373484c9bf42e8a4e995c7d6a5a3fc13b16e7b2125f6ce641d461a0a17c
Size: 25.65 kB - python3.12-debug-3.12.15-1.el9_8.i686.rpm
MD5: f3a4dfd565d71904f584ec014b8a55e6
SHA-256: 9960bb4a2bc06df53e8154b7615c278fdd4eeac31c55d39b7603903bad52d9a8
Size: 3.55 MB - python3.12-debug-3.12.15-1.el9_8.x86_64.rpm
MD5: cb476805c37e2e22208d57116aeb0508
SHA-256: a6a0f27d0af6cba6716ec236e7c5be995babc84e8299233b5f66df208b12200c
Size: 3.72 MB - python3.12-devel-3.12.15-1.el9_8.i686.rpm
MD5: 83abd3d2f494aecfa06e439bc77feca3
SHA-256: d1b3a756188a93dc655ae79ee351f63f8b01de287aae5165d5c2867e921a1c7f
Size: 327.23 kB - python3.12-devel-3.12.15-1.el9_8.x86_64.rpm
MD5: 6dfff0539382c0d79ac25436a54b8831
SHA-256: 7b72f140adc1f3bfba5d51eb276ffb38a8b67f51930bfc0b7f9d40aa2e4d4083
Size: 327.23 kB - python3.12-idle-3.12.15-1.el9_8.i686.rpm
MD5: cda0b3f36729bfe7c1b3e559153382eb
SHA-256: 6f5f5729d112a575fb1c9df011bb6e713428f384a2fc0f9120aa7fb664d0e85f
Size: 1.07 MB - python3.12-idle-3.12.15-1.el9_8.x86_64.rpm
MD5: 127ca6d74848b36f1b178c2e80e5011a
SHA-256: 1e395d0c06296c06d180f65d6c501eb957a2aab01cd928d550a197c4b6309683
Size: 1.07 MB - python3.12-libs-3.12.15-1.el9_8.i686.rpm
MD5: 3f52c2908cc765999800c22309b76ab2
SHA-256: ed1489b1465d00b5312706f91b66798073ab05ff6d3b6e412f76b84386ad0368
Size: 9.73 MB - python3.12-libs-3.12.15-1.el9_8.x86_64.rpm
MD5: 17d1320e9ae2ab4f19861f2dec8c5d5f
SHA-256: 06a6f54ce029a0cc58927f726330251781c4be80c5ab5c8a8738194eaf1395e7
Size: 9.70 MB - python3.12-test-3.12.15-1.el9_8.i686.rpm
MD5: c2e0feb9f33da343d9432090332c37d5
SHA-256: 87ff297ca2b9f798b89f435a7a6b740f8862f503955fe8230ed3c83a0ab727ae
Size: 15.79 MB - python3.12-test-3.12.15-1.el9_8.x86_64.rpm
MD5: 2d51a3cb27fc519132a726c8d44f3882
SHA-256: 6ba63aa02d27b4d315b027ff04f263d36ec9e225251c82b284d687f97525100c
Size: 15.79 MB - python3.12-tkinter-3.12.15-1.el9_8.i686.rpm
MD5: 4fdcbcf5a9f283778a990f080c08cd19
SHA-256: 04c9552792bace259b100e6d45fea7e8847dc144fde0c0a935dfdf4c7a91ef7b
Size: 421.27 kB - python3.12-tkinter-3.12.15-1.el9_8.x86_64.rpm
MD5: b0869d9603ebef1244533f677bcee7d1
SHA-256: 637ccf39f2339e5a25d706df63a25d9e8af9318e919b9bef2db34e3e31348fd8
Size: 420.25 kB