Opened 10 months ago

Closed 9 months ago

Last modified 8 months ago

#22462 closed enhancement (fixed)

python3-3.14.2

Reported by: Bruce Dubbs Owned by: zeckma
Priority: elevated Milestone: 13.0
Component: BOOK Version: git
Severity: medium Keywords:
Cc:

Description

New point version.

Change History (14)

comment:1 by Douglas R. Reno, 10 months ago

Priority: normal → elevated
Security

    gh-139700: Check consistency of the zip64 end of central directory record. Support 
records with “zip64 extensible data” if there are no bytes prepended to the ZIP file.

    gh-139283: sqlite3: correctly handle maximum number of rows to fetch in 
Cursor.fetchmany and reject negative values for Cursor.arraysize. Patch by Bénédikt 
Tran.

    gh-137836: Add support of the “plaintext” element, RAWTEXT elements “xmp”, “iframe”, 
“noembed” and “noframes”, and optionally RAWTEXT element “noscript” in 
html.parser.HTMLParser.

    gh-136063: email.message: ensure linear complexity for legacy HTTP parameters 
parsing. Patch by Bénédikt Tran.

    gh-136065: Fix quadratic complexity in os.path.expandvars().

    gh-119451: Fix a potential memory denial of service in the http.client module. When 
connecting to a malicious server, it could cause an arbitrary amount of memory to be 
allocated. This could have led to symptoms including a MemoryError, swapping, out of 
memory (OOM) killed processes or containers, or even system crashes.

    gh-119342: Fix a potential memory denial of service in the plistlib module. When 
reading a Plist file received from untrusted source, it could cause an arbitrary amount 
of memory to be allocated. This could have led to symptoms including a MemoryError, 
swapping, out of memory (OOM) killed processes or containers, or even system crashes.

comment:2 by Douglas R. Reno, 10 months ago

-------- Forwarded Message --------
Subject: [Security-announce][CVE-2025-13836] Excessive read buffering DoS in http.client
Date:     Mon, 1 Dec 2025 18:57:32 +0000
From:     Seth Larson <seth@python.org>
Reply-To:     security-sig@python.org
To:     security-announce@python.org



There is a MEDIUM severity vulnerability affecting CPython.

When reading an HTTP response from a server, if no read amount is specified, the
default behavior will be to use Content-Length. This allows a malicious server
to cause the client to read large amounts of data into memory, potentially
causing OOM or other DoS.

Please see the linked CVE ID for the latest information on
affected versions:

* https://www.cve.org/CVERecord?id=CVE-2025-13836
* https://github.com/python/cpython/pull/119454


-------- Forwarded Message --------
Subject: [Security-announce][CVE-2025-13837] Out-of-memory when loading Plist
Date:     Mon, 1 Dec 2025 18:58:33 +0000
From:     Seth Larson <seth@python.org>
Reply-To:     security-sig@python.org
To:     security-announce@python.org



There is a LOW severity vulnerability affecting CPython.

When loading a plist file, the plistlib module reads data in size specified by
the file itself, meaning a malicious file can cause OOM and DoS issues

Please see the linked CVE ID for the latest information on affected versions:

* https://www.cve.org/CVERecord?id=CVE-2025-13837
* https://github.com/python/cpython/pull/119343


-------- Forwarded Message --------
Subject: [Security-announce][CVE-2025-12084] Quadratic complexity in node ID cache clearing
Date:     Wed, 3 Dec 2025 18:59:03 +0000
From:     Seth Larson <seth@python.org>
Reply-To:     security-sig@python.org
To:     security-announce@python.org



There is a MEDIUM severity vulnerability affecting CPython.

When building nested elements using xml.dom.minidom methods such as
appendChild() that have a dependency on _clear_id_cache() the algorithm is
quadratic. Availability can be impacted when building excessively nested
documents.

Please see the linked CVE ID for the latest information on affected versions:

* https://www.cve.org/CVERecord?id=CVE-2025-12084
* https://github.com/python/cpython/pull/142146

comment:3 by Bruce Dubbs, 10 months ago

Summary: python3-3.14.1 (Wait for LFS) → python3-3.14.2 (Wait for LFS)

Now version 3.14.2.

comment:4 by Bruce Dubbs, 10 months ago

Python 3.14.2 final - Release date: 2025-12-05

Security

  • gh-142145: Remove quadratic behavior in xml.minidom node ID cache clearing.
  • gh-119452: Fix a potential memory denial of service in the http.server module. When a malicious user is connected to the CGI server on Windows, it could cause an arbitrary amount of memory to be allocated. This could have led to symptoms including a MemoryError, swapping, out of memory (OOM) killed processes or containers, or even system crashes.

Library

  • gh-140797: Revert changes to the undocumented re.Scanner class. Capturing groups are still allowed for backward compatibility, although using them can lead to incorrect result. They will be forbidden in future Python versions.
  • gh-142206: The resource tracker in the multiprocessing module now uses the original communication protocol, as in Python 3.14.0 and below, by default. This avoids issues with upgrading Python while it is running. (Note that such ‘in-place’ upgrades are not tested.) The tracker remains compatible with subprocesses that use new protocol (that is, subprocesses using Python 3.13.10, 3.14.1 and 3.15).
  • gh-142214: Fix two regressions in dataclasses in Python 3.14.1 related to annotations.
    • An exception is no longer raised if slots=True is used and the init method does not have an annotate attribute (likely because init=False was used).
    • An exception is no longer raised if annotations are requested on the init method and one of the fields is not present in the class annotations. This can occur in certain dynamic scenarios.

comment:5 by Bruce Dubbs, 10 months ago

Summary: python3-3.14.2 (Wait for LFS) → python3-3.14.2

comment:6 by Bruce Dubbs, 10 months ago

Resolution: → fixed
Status: new → closed

Fixed at commit 8a0ab7ae7f.

comment:7 by zeckma, 10 months ago

Resolution: fixed
Status: closed → reopened

This ticket needs a security advisory. It's been said before, but please don't close issues that need an SA but don't have one filed for already. It makes tickets like these hard to track down.

I will handle the security advisory.

comment:8 by zeckma, 10 months ago

Owner: changed from blfs-book to zeckma
Status: reopened → new

comment:9 by zeckma, 10 months ago

Status: new → assigned

comment:10 by zeckma, 10 months ago

One of the security fixes causes a regression in pyatspi2 and multiple tests. This has been observed by Debian. The regression has been labeled a release blocker but made it in both 3.14.2 and 3.13.11. We shall hold off on the SA filing until this regression is fixed.

comment:11 by zeckma, 9 months ago

Fixed regression at 31a805911fd58193cc2da2690d9ac2ef5410618b. The change was also made in LFS.

comment:12 by zeckma, 9 months ago

I have a total list of CVEs:

  • CVE-2025-8291 (Medium): Check consistency of the zip64 end of central directory record
  • CVE-2025-12084 (Medium): Quadratic complexity in node ID cache clearing
  • CVE-2025-13836 (Medium): Excessive read buffering DoS in http.client
  • CVE-2025-13837 (Low): Out-of-memory when loading Plist

gh-139283 was listed as security but then removed as it's veracity of being a security issue was questioned. gh-137836 nor gh-136063 have actual CVEs assigned, or if they are, aren't made public. I will still list all 7 security issues but will only be able to link to the 4 CVEs and the rest of them will be linked to the GitHub issues.

comment:13 by zeckma, 9 months ago

Resolution: → fixed
Status: assigned → closed

SA-12.4-063 issued.

comment:14 by Bruce Dubbs, 8 months ago

Milestone: 12.5 → 13.0

Milestone renamed

Note: See TracTickets for help on using tickets.