Changes between Initial Version and Version 1 of Ticket #5952, comment 1


Ignore:
Timestamp:
06/11/2026 09:35:10 PM (112 minutes ago)
Author:
Bruce Dubbs

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5952, comment 1

    initial v1  
    1 {{{
     1
    22Python 3.14.6 final
    33
    44Release date: 2026-06-10
     5
    56Security
    6     gh-151159: Update Android and iOS installers to use OpenSSL 3.5.7.
    7     gh-150599: Fix a possible stack buffer overflow in bz2 when a bz2.BZ2Decompressor is reused after a decompression error. The decompressor now becomes unusable after libbz2 reports an error.
    8     gh-149835: shutil.move() now resolves symlinks via os.path.realpath() when checking whether the destination is inside the source directory, preventing a symlink-based bypass of that guard.
    9     gh-149698: Update bundled libexpat to version 2.8.1 for the fix for CVE 2026-45186.
    10     gh-87451: The ftplib module’s undocumented ftpcp function no longer trusts the IPv4 address value returned from the source server in response to the PASV command by default, completing the fix for CVE-2021-4189. As with ftplib.FTP, the former behavior can be re-enabled by setting the trust_server_pasv_ipv4_address attribute on the source ftplib.FTP instance to True. Thanks to Qi Deng at Aurascape AI for the report.
    11     gh-149486: tarfile.data_filter() now validates link targets using the same normalised value that is written to disk, strips trailing separators from the member name when resolving a symlink’s directory, and rejects link members that would replace the destination directory itself. This closes several path-traversal bypasses of the data extraction filter.
    12     gh-149079: Fix a potential denial of service in unicodedata.normalize(). The canonical ordering step of Unicode normalization used a quadratic-time insertion sort for reordering combining characters, which could be exploited with crafted input containing many combining characters in non-canonical order. Replaced with a linear-time counting sort for long runs.
    13     gh-149018: Improved protection against XML hash-flooding attacks in xml.parsers.expat and xml.etree.ElementTree when Python is compiled with libExpat 2.8.0 or later.
     7-    gh-151159: Update Android and iOS installers to use OpenSSL 3.5.7.
     8-    gh-150599: Fix a possible stack buffer overflow in bz2 when a bz2.BZ2Decompressor is reused after a decompression error. The decompressor now becomes unusable after libbz2 reports an error.
     9-    gh-149835: shutil.move() now resolves symlinks via os.path.realpath() when checking whether the destination is inside the source directory, preventing a symlink-based bypass of that guard.
     10-    gh-149698: Update bundled libexpat to version 2.8.1 for the fix for CVE 2026-45186.
     11-    gh-87451: The ftplib module’s undocumented ftpcp function no longer trusts the IPv4 address value returned from the source server in response to the PASV command by default, completing the fix for CVE-2021-4189. As with ftplib.FTP, the former behavior can be re-enabled by setting the trust_server_pasv_ipv4_address attribute on the source ftplib.FTP instance to True. Thanks to Qi Deng at Aurascape AI for the report.
     12-    gh-149486: tarfile.data_filter() now validates link targets using the same normalised value that is written to disk, strips trailing separators from the member name when resolving a symlink’s directory, and rejects link members that would replace the destination directory itself. This closes several path-traversal bypasses of the data extraction filter.
     13-    gh-149079: Fix a potential denial of service in unicodedata.normalize(). The canonical ordering step of Unicode normalization used a quadratic-time insertion sort for reordering combining characters, which could be exploited with crafted input containing many combining characters in non-canonical order. Replaced with a linear-time counting sort for long runs.
     14-    gh-149018: Improved protection against XML hash-flooding attacks in xml.parsers.expat and xml.etree.ElementTree when Python is compiled with libExpat 2.8.0 or later.
    1415
    1516Core and Builtins
    16     gh-151112: Fix a crash in the compiler that could occur when running out of memory.
    17     gh-151126: Fix a crash, when there’s no memory left on a device, which happened in:
    18         code compilation - _winapi.CreateProcess()
    19     Now these places raise proper MemoryError errors.
    20     gh-150700: Fix a SystemError when compiling a class-scope comprehension containing a lambda that references __class__, __classdict__, or __conditional_annotations__. Patch by Bartosz Sławecki.
    21     gh-150633: Fix the frozen importer accepting module names with embedded null bytes, which caused it to bypass the sys.modules cache and create duplicate module objects.
    22     gh-148613: Fix a data race in the free-threaded build between gc.set_threshold() and garbage collection scheduling during object allocation.
    23     gh-149156: Fix an intermittent crash after os.fork() when perf trampoline profiling is enabled and the child returns through trampoline frames inherited from the parent process.
    24     gh-149449: Fix a use-after-free crash when the unicodedata module was removed from sys.modules and garbage-collected between calls that decode \N{...} escapes or use the namereplace codec error handler.
    25     gh-150207: Fix a crash when a memory allocation fails during tokenizer initialization. A proper MemoryError is now raised instead.
    26     gh-150107: asyncio: sendfile() and sock_sendfile() event loop methods now call file.seek(offset) if file has a seek() method, even if offset is 0 (default value).
    27     gh-150146: Fix a crash on a complex type variable substitution.
    28     from typing import TypeVar; memoryview[TypeVar("")][*typing.Mapping[..., ...]] used to fail due to missing NULL check on _unpack_args C function call.
    29     gh-149590: Fix crash when faulthandler is imported more than once.
    30     gh-149816: Fix a race condition in _PyBytes_FromList in free-threading mode.
    31     gh-149816: Fix a race condition in memoryview with free-threading.
    32     gh-149805: Fix a SystemError when compiling a compiling __classdict__ class annotation. Found by OSS-Fuzz in #512907042.
    33     gh-149738: sqlite3: Disallow removing row_factory and text_factory attributes of a connection to prevent a crash on a query.
    34     gh-139808: Add branch protections for AArch64 (BTI/PAC) in assembly code used by -X perf_jit (Linux perf profiler integration).
    35     gh-148450: Fix abc.register() so it invalidates type version tags for registered classes.
     17-    gh-151112: Fix a crash in the compiler that could occur when running out of memory.
     18- gh-151126: Fix a crash, when there’s no memory left on a device, which happened in:
     19  code compilation - _winapi.CreateProcess()
     20  Now these places raise proper MemoryError errors.
     21-    gh-150700: Fix a SystemError when compiling a class-scope comprehension containing a lambda that references __class__, __classdict__, or __conditional_annotations__. Patch by Bartosz Sławecki.
     22-    gh-150633: Fix the frozen importer accepting module names with embedded null bytes, which caused it to bypass the sys.modules cache and create duplicate module objects.
     23-    gh-148613: Fix a data race in the free-threaded build between gc.set_threshold() and garbage collection scheduling during object allocation.
     24-    gh-149156: Fix an intermittent crash after os.fork() when perf trampoline profiling is enabled and the child returns through trampoline frames inherited from the parent process.
     25-    gh-149449: Fix a use-after-free crash when the unicodedata module was removed from sys.modules and garbage-collected between calls that decode \N{...} escapes or use the namereplace codec error handler.
     26-    gh-150207: Fix a crash when a memory allocation fails during tokenizer initialization. A proper MemoryError is now raised instead.
     27-    gh-150107: asyncio: sendfile() and sock_sendfile() event loop methods now call file.seek(offset) if file has a seek() method, even if offset is 0 (default value).
     28- gh-150146: Fix a crash on a complex type variable substitution.
     29  from typing import TypeVar; memoryview[TypeVar("")][*typing.Mapping[..., ...]] used to fail due
     30  to missing NULL check on _unpack_args C function call.
     31-    gh-149590: Fix crash when faulthandler is imported more than once.
     32-    gh-149816: Fix a race condition in _PyBytes_FromList in free-threading mode.
     33-    gh-149816: Fix a race condition in memoryview with free-threading.
     34-    gh-149805: Fix a SystemError when compiling a compiling __classdict__ class annotation. Found by OSS-Fuzz in #512907042.
     35-    gh-149738: sqlite3: Disallow removing row_factory and text_factory attributes of a connection to prevent a crash on a query.
     36-    gh-139808: Add branch protections for AArch64 (BTI/PAC) in assembly code used by -X perf_jit (Linux perf profiler integration).
     37-    gh-148450: Fix abc.register() so it invalidates type version tags for registered classes.
    3638
    3739Library
    38     gh-151039: Fix a crash when static datetime types outlive the _datetime module.
    39     gh-150913: Fix sqlite3.Blob slice assignment to raise TypeError and IndexError for type and size mismatches respectively, even when the target slice is empty.
    40     gh-143008: Fix race conditions when re-initializing a io.TextIOWrapper object.
    41     gh-150750: Fix a race condition in collections.deque.index() with free-threading.
    42     gh-150685: Update bundled pip to 26.1.2
    43     gh-150406: Fix a possible crash occurring during socket module initialization when the system is out of memory on platforms without a reentrant gethostbyname.
    44     gh-150372: readline: Fix a potential crash during tab completion caused by an out-of-memory error during module initialization.
    45     gh-150157: Fix a crash in free-threaded builds that occurs when pickling by name objects without a __module__ attribute while sys.modules is concurrently being modified.
    46     gh-150175: Fix race condition in unittest.mock.ThreadingMock where concurrent calls could lose increments to call_count and other attributes due to a missing lock in _increment_mock_call.
    47     gh-84353: Preserve non-UTF-8 encoded filenames when appending to a zipfile.ZipFile. Previously, non-ASCII names stored in a legacy encoding (without the UTF-8 flag bit set) could be corrupted when the central directory was rewritten: they were decoded as cp437 and then re-stored as UTF-8.
    48     gh-149816: Fix race condition in ssl.SSLContext.sni_callback
    49     gh-149995: Update various docstrings in typing.
    50     gh-88726: The email package now uses standard MIME charset names “gb2312” and “big5” instead of non-standard names “eucgb2312_cn” and “big5_tw”.
    51     gh-149571: Fix the C implementation of xml.etree.ElementTree.Element.itertext(): it no longer emits text for comments and processing instructions.
    52     gh-149921: Fix reference leaks in error paths of the _interpchannels and _interpqueues extension modules.
    53     gh-149816: Fix a race condition in _random.Random.__init__ method in free-threading mode.
    54     gh-149801: Add IANA registered names and aliases with leading zeros before number (like IBM00858, CP00858, IBM01140, CP01140) for corresponding codecs.
    55     gh-149701: Fix bad return code from Lib/venv/bin/activate if hashing is disabled
    56     gh-112821: In the REPL, autocompletion might run arbitrary code in the getter of a descriptor. If that getter raised an exception, autocompletion would fail to present any options for the entire object. Autocompletion now works as expected for these objects.
    57     gh-149489: Fix ElementTree serialization to HTML. The content of elements “xmp”, “iframe”, “noembed”, “noframes”, and “plaintext” is no longer escaped. The “plaintext” element no longer have the closing tag.
    58     gh-149231: In tomllib, the number of parts in TOML keys is now limited
    59     gh-149046: io: Fix io.StringIO serialization: no longer call str(obj) on str subclasses. Patch by Thomas Kowalski.
    60     gh-148954: Fix XML injection vulnerability in xmlrpc.client.dumps() where the methodname was not being escaped before interpolation into the XML body.
    61     gh-148441: xml.parsers.expat: prevent a crash in CharacterDataHandler() when the character data size exceeds the parser’s buffer size.
    62     gh-146452: Fix segfault in pickle when pickling a dictionary concurrently mutated by another thread in the free-threaded build.
    63     gh-142831: Fix a crash in the json module where a use-after-free could occur if the object being encoded is modified during serialization.
    64     gh-90949: Add SetBillionLaughsAttackProtectionActivationThreshold() and SetBillionLaughsAttackProtectionMaximumAmplification() to xmlparser objects to tune protections against billion laughs attacks. Patch by Bénédikt Tran.
    65     gh-134261: zip: On reproducible builds, ZipFile uses UTC instead of the local time when writing file datetimes to avoid underflows.
    66     gh-128110: Fix bug in the parsing of email address headers that could result in extraneous spaces in the decoded text when using a modern email policy. Space between pairs of adjacent RFC 2047 encoded-words is now ignored, per section 6.2 (and consistent with existing parsing of unstructured headers like Subject).
    67     gh-107398: Fix tarfile stream mode exception when process the file with the gzip extra field.
    68     gh-123853: Update the table of Windows language code identifiers (LCIDs) used by locale.getdefaultlocale() on Windows to protocol version 16.0 (2024-04-23).
    69     gh-91099: imaplib.IMAP4.login() now raises exceptions with str instead of bytes. Patch by Florian Best.
     40   - gh-151039: Fix a crash when static datetime types outlive the _datetime module.
     41   - gh-150913: Fix sqlite3.Blob slice assignment to raise TypeError and IndexError for type and size mismatches respectively, even when the target slice is empty.
     42   - gh-143008: Fix race conditions when re-initializing a io.TextIOWrapper object.
     43   - gh-150750: Fix a race condition in collections.deque.index() with free-threading.
     44   - gh-150685: Update bundled pip to 26.1.2
     45   - gh-150406: Fix a possible crash occurring during socket module initialization when the system is out of memory on platforms without a reentrant gethostbyname.
     46   - gh-150372: readline: Fix a potential crash during tab completion caused by an out-of-memory error during module initialization.
     47   - gh-150157: Fix a crash in free-threaded builds that occurs when pickling by name objects without a __module__ attribute while sys.modules is concurrently being modified.
     48   - gh-150175: Fix race condition in unittest.mock.ThreadingMock where concurrent calls could lose increments to call_count and other attributes due to a missing lock in _increment_mock_call.
     49   - gh-84353: Preserve non-UTF-8 encoded filenames when appending to a zipfile.ZipFile. Previously, non-ASCII names stored in a legacy encoding (without the UTF-8 flag bit set) could be corrupted when the central directory was rewritten: they were decoded as cp437 and then re-stored as UTF-8.
     50   - gh-149816: Fix race condition in ssl.SSLContext.sni_callback
     51   - gh-149995: Update various docstrings in typing.
     52   - gh-88726: The email package now uses standard MIME charset names “gb2312” and “big5” instead of non-standard names “eucgb2312_cn” and “big5_tw”.
     53   - gh-149571: Fix the C implementation of xml.etree.ElementTree.Element.itertext(): it no longer emits text for comments and processing instructions.
     54   - gh-149921: Fix reference leaks in error paths of the _interpchannels and _interpqueues extension modules.
     55   - gh-149816: Fix a race condition in _random.Random.__init__ method in free-threading mode.
     56   - gh-149801: Add IANA registered names and aliases with leading zeros before number (like IBM00858, CP00858, IBM01140, CP01140) for corresponding codecs.
     57   - gh-149701: Fix bad return code from Lib/venv/bin/activate if hashing is disabled
     58   - gh-112821: In the REPL, autocompletion might run arbitrary code in the getter of a descriptor. If that getter raised an exception, autocompletion would fail to present any options for the entire object. Autocompletion now works as expected for these objects.
     59   - gh-149489: Fix ElementTree serialization to HTML. The content of elements “xmp”, “iframe”, “noembed”, “noframes”, and “plaintext” is no longer escaped. The “plaintext” element no longer have the closing tag.
     60   - gh-149231: In tomllib, the number of parts in TOML keys is now limited
     61   - gh-149046: io: Fix io.StringIO serialization: no longer call str(obj) on str subclasses. Patch by Thomas Kowalski.
     62   - gh-148954: Fix XML injection vulnerability in xmlrpc.client.dumps() where the methodname was not being escaped before interpolation into the XML body.
     63   - gh-148441: xml.parsers.expat: prevent a crash in CharacterDataHandler() when the character data size exceeds the parser’s buffer size.
     64   - gh-146452: Fix segfault in pickle when pickling a dictionary concurrently mutated by another thread in the free-threaded build.
     65   - gh-142831: Fix a crash in the json module where a use-after-free could occur if the object being encoded is modified during serialization.
     66   - gh-90949: Add SetBillionLaughsAttackProtectionActivationThreshold() and SetBillionLaughsAttackProtectionMaximumAmplification() to xmlparser objects to tune protections against billion laughs attacks. Patch by Bénédikt Tran.
     67   - gh-134261: zip: On reproducible builds, ZipFile uses UTC instead of the local time when writing file datetimes to avoid underflows.
     68   - gh-128110: Fix bug in the parsing of email address headers that could result in extraneous spaces in the decoded text when using a modern email policy. Space between pairs of adjacent RFC 2047 encoded-words is now ignored, per section 6.2 (and consistent with existing parsing of unstructured headers like Subject).
     69   - gh-107398: Fix tarfile stream mode exception when process the file with the gzip extra field.
     70   - gh-123853: Update the table of Windows language code identifiers (LCIDs) used by locale.getdefaultlocale() on Windows to protocol version 16.0 (2024-04-23).
     71   - gh-91099: imaplib.IMAP4.login() now raises exceptions with str instead of bytes. Patch by Florian Best.
    7072
    7173Documentation
    72     gh-150319: Generic builtin and standard library types now document the meaning of their type parameters.
    73     gh-109503: Fix documentation for shutil.move() on usage of os.rename() since nonatomic move might be used even if the files are on the same filesystem. Patch by Fang Li
     74   - gh-150319: Generic builtin and standard library types now document the meaning of their type parameters.
     75   - gh-109503: Fix documentation for shutil.move() on usage of os.rename() since nonatomic move might be used even if the files are on the same filesystem. Patch by Fang Li
    7476
    7577Tests
    76     gh-151130: Add more tests for PyWeakref_* C API.
    77     gh-149776: Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite tests if it’s not supported. Patch by Victor Stinner.
     78   - gh-151130: Add more tests for PyWeakref_* C API.
     79   - gh-149776: Fix test_socket on Linux kernel 7.1 and newer: skip UDP Lite tests if it’s not supported. Patch by Victor Stinner.
    7880
    7981Build
    80     gh-148294: Corrected the use of AC_PATH_TOOL in configure.ac to allow a C++ compiler to be found on PATH.
     82   - gh-148294: Corrected the use of AC_PATH_TOOL in configure.ac to allow a C++ compiler to be found on PATH.
    8183
    8284Windows
    83     gh-151159: Updated bundled version of OpenSSL to 3.5.7.
     85   - gh-151159: Updated bundled version of OpenSSL to 3.5.7.
    8486
    8587macOS
    86     gh-151159: Update macOS installer to use OpenSSL 3.5.7.
    87     gh-150644: When system logging is enabled (with config.use_system_logger, messages are now tagged as public. This allows the macOS 26 system logger to view messages without special configuration.
    88     gh-115119: Update macOS installer to use libmpdecimal 4.0.1.
     88   - gh-151159: Update macOS installer to use OpenSSL 3.5.7.
     89   - gh-150644: When system logging is enabled (with config.use_system_logger, messages are now tagged as public. This allows the macOS 26 system logger to view messages without special configuration.
     90   - gh-115119: Update macOS installer to use libmpdecimal 4.0.1.
    8991
    9092IDLE
    91     bpo-6699: Warn the user if a file will be overwritten when saving.
     93   - bpo-6699: Warn the user if a file will be overwritten when saving.
    9294
    9395C API
    94     gh-150907: Fix dynamic_annotations.h header file when built with C++ and Valgrind: add extern "C++" scope for the C++ template. Patch by Victor Stinner.
    95     gh-145235: Made PyDict_AddWatcher(), PyDict_ClearWatcher(), PyDict_Watch(), and PyDict_Unwatch() thread-safe on the free threaded build.
    96 }}}
     96   - gh-150907: Fix dynamic_annotations.h header file when built with C++ and Valgrind: add extern "C++" scope for the C++ template. Patch by Victor Stinner.
     97   - gh-145235: Made PyDict_AddWatcher(), PyDict_ClearWatcher(), PyDict_Watch(), and PyDict_Unwatch() thread-safe on the free threaded build.
     98
    9799gh-149486 was assigned CVE-2026-7774.
    98100