Commit graph

120572 commits

Author SHA1 Message Date
Miss Islington (bot)
9fc477cd1d
[3.12] gh-144833: Fix use-after-free in SSL module when SSL_new() fails (GH-144843) (#144860)
gh-144833: Fix use-after-free in SSL module when SSL_new() fails (GH-144843)

In newPySSLSocket(), when SSL_new() returns NULL, Py_DECREF(self)
was called before _setSSLError(get_state_ctx(self), ...), causing
a use-after-free. Additionally, get_state_ctx() was called with
self (PySSLSocket*) instead of sslctx (PySSLContext*), which is
a type confusion bug.

Fix by calling _setSSLError() before Py_DECREF() and using
sslctx instead of self for get_state_ctx().
(cherry picked from commit c91638ca06)

Co-authored-by: Ramin Farajpour Cami <ramin.blackhat@gmail.com>
2026-02-23 15:50:38 +01:00
Miss Islington (bot)
e417f05ad7
[3.12] gh-144125: email: verify headers are sound in BytesGenerator
gh-144125: email: verify headers are sound in BytesGenerator
(cherry picked from commit 052e55e7d4)

Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Denis Ledoux <dle@odoo.com>
Co-authored-by: Denis Ledoux <5822488+beledouxdenis@users.noreply.github.com>
Co-authored-by: Petr Viktorin <302922+encukou@users.noreply.github.com>
Co-authored-by: Bas Bloemsaat <1586868+basbloemsaat@users.noreply.github.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-02-13 16:04:54 +00:00
Miss Islington (bot)
dc353959be
[3.12] gh-144484: Warn users not to use wsgiref in production
gh-144484: Warn users not to use wsgiref in production
(cherry picked from commit 7e777c587f)

Co-authored-by: Seth Michael Larson <seth@python.org>
2026-02-05 18:46:21 +00:00
Miss Islington (bot)
276b9f2ea2
[3.12] gh-74453: Add stronger security warning to os.path.commonprefix
gh-74453: Add stronger security warning to os.path.commonprefix (GH-144401)
(cherry picked from commit 4e15b8d95d)

Co-authored-by: Seth Michael Larson <seth@python.org>
2026-02-03 14:29:02 +00:00
Miss Islington (bot)
a76e4cd62d
[3.12] gh-143935: Email preserve parens when folding comments (GH-143936) (#144036)
Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Denis Ledoux <dle@odoo.com>
2026-01-26 17:15:59 +00:00
Miss Islington (bot)
6270010741
[3.12] gh-143919: Reject control characters in http cookies (#144091)
Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
Co-authored-by: sobolevn <mail@sobolevn.me>
2026-01-25 17:11:10 +00:00
Seth Michael Larson
4ed11d3cd2
[3.12] gh-143925: Reject control characters in data: URL mediatypes (#144113)
* [3.12] gh-143925: Reject control characters in data: URL mediatypes
(cherry picked from commit f25509e78e)
(cherry picked from commit 2c9c746077)

Co-authored-by: Seth Michael Larson <seth@python.org>

* Remove "ExtraAssertations"
2026-01-25 17:05:57 +00:00
Gregory P. Smith
4802b96a2c
[3.12] gh-143916: Reject control characters in wsgiref.headers.Headers (GH-143917) (GH-143973) (#143974)
* Add 'test.support' fixture for C0 control characters
* gh-143916: Reject control characters in wsgiref.headers.Headers

(cherry picked from commit f7fceed79c)
(cherry picked from commit 22e4d55285)

Co-authored-by: Seth Michael Larson <seth@python.org>
2026-01-19 13:17:19 +01:00
Hugo van Kemenade
64745cfa82
[3.12] Bump GitHub Actions (GH-143757) (#143801) 2026-01-13 17:22:59 +02:00
Miss Islington (bot)
2750f3c9b5
[3.12] Use `sphinxext-opengraph` v0.13.0 (GH-140425) (#140430)
Use ``sphinxext-opengraph`` v0.13.0 (GH-140425)
(cherry picked from commit b4d2307367)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-12-22 14:51:52 +01:00
Miss Islington (bot)
1c00d7bb3b
[3.12] gh-136063: fix quadratic-complexity parsing in email.message._parseparam (GH-136072) (#140829)
gh-136063: fix quadratic-complexity parsing in `email.message._parseparam` (GH-136072)
(cherry picked from commit 680a5d070f)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-12-22 14:51:27 +01:00
Miss Islington (bot)
14b1fdb0a9
[3.12] gh-119451: Fix a potential denial of service in http.client (GH-119454) (#142140)
gh-119451: Fix a potential denial of service in http.client (GH-119454)

Reading the whole body of the HTTP response could cause OOM if
the Content-Length value is too large even if the server does not send
a large amount of data. Now the HTTP client reads large data by chunks,
therefore the amount of consumed memory is proportional to the amount
of sent data.
(cherry picked from commit 5a4c4a033a)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-12-22 14:50:18 +01:00
Serhiy Storchaka
5a8b19677d
[3.12] gh-119342: Fix a potential denial of service in plistlib (GH-119343) (#142149)
Reading a specially prepared small Plist file could cause OOM because file's
read(n) preallocates a bytes object for reading the specified amount of
data. Now plistlib reads large data by chunks, therefore the upper limit of
consumed memory is proportional to the size of the input file.
(cherry picked from commit 694922cf40)
2025-12-22 14:49:44 +01:00
Miss Islington (bot)
9c9dda6625
[3.12] gh-142145: Remove quadratic behavior in node ID cache clearing (GH-142146) (#142211)
* gh-142145: Remove quadratic behavior in node ID cache clearing (GH-142146)
* gh-142754: Ensure that Element & Attr instances have the ownerDocument attribute (GH-142794)
(cherry picked from commit 1cc7551b3f)
(cherry picked from commit 08d8e18ad8)
(cherry picked from commit 8d2d7bb2e7)

Co-authored-by: Jacob Walls <38668450+jacobtylerwalls@users.noreply.github.com>
Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-12-22 14:48:49 +01:00
Sebastian Pipping
0e4cd89781
[3.12] gh-90949: add Expat API to prevent XML deadly allocations (CVE-2025-59375) (GH-139234) (#139527)
* [3.12] gh-90949: add Expat API to prevent XML deadly allocations (CVE-2025-59375) (GH-139234)

Expose the XML Expat 2.7.2 mitigation APIs to disallow use of
disproportional amounts of dynamic memory from within an Expat
parser (see CVE-2025-59375 for instance).

The exposed APIs are available on Expat parsers, that is,
parsers created by `xml.parsers.expat.ParserCreate()`, as:

- `parser.SetAllocTrackerActivationThreshold(threshold)`, and
- `parser.SetAllocTrackerMaximumAmplification(max_factor)`.

(cherry picked from commit f04bea44c3)
(cherry picked from commit 68a1778b77)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-12-17 15:58:59 +01:00
Miss Islington (bot)
d849cf5fec
[3.12] gh-119452: Fix a potential virtual memory allocation denial of service in http.server (GH-142216) (#142297)
[3.14] gh-119452: Fix a potential virtual memory allocation denial of service in http.server (GH-142216)

The CGI server on Windows could consume the amount of memory specified
in the Content-Length header of the request even if the client does not
send such much data. Now it reads the POST request body by chunks,
therefore the memory consumption is proportional to the amount of sent
data.
(cherry picked from commit 0e4f4f1a46)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-12-15 15:11:38 +01:00
Serhiy Storchaka
a183a11db8
[3.12] gh-137836: Support more RAWTEXT and PLAINTEXT elements in HTMLParser (GH-137837) (GH-140842) (GH-140850)
(cherry picked from commit a17c57eee5)
(cherry picked from commit 0329bd11c7)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-10-31 17:57:28 +01:00
Łukasz Langa
c8a5f3435c
[3.12] gh-136065: Fix quadratic complexity in os.path.expandvars() (GH-134952) (GH-140847)
(cherry picked from commit f029e8db62)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-10-31 17:50:42 +01:00
Thomas Wouters
8cb2092bd8 Post 3.12.12 2025-10-09 13:46:51 +02:00
Thomas Wouters
4a5632fbf9 Python 3.12.12 2025-10-09 13:07:00 +02:00
Miss Islington (bot)
26534f45a5
[3.12] gh-139310: skip test_aead_aes_gcm for Linux kernel between 6.16.0 and 6.17.x (GH-139552) (GH-139764)
Currently, Fedora 42 uses a custom Linux Kernel 6.16.9 that backported an upstream change
from 6.17-rc7 [1,3] but not its subsequent fix [2]. Until the issue is resolved upstream,
we skip the failing test `test_socket.test_aead_aes_gcm` for kernel versions between 6.16
and 6.17.x.

[1] 1b34cbbf4f
[2] d0ca0df179.
[3] 45bcf60fe4
(cherry picked from commit 41712c4e09)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-10-09 11:06:33 +02:00
Jacob Coffee
52fe0445d5
[3.12] Remove Cirrus macOS runners from CI (GH-139799) (#139804)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-10-08 22:42:51 +03:00
Jacob Coffee
4ba846bc9d
[3.12] gh-137638: Use macos-15-intel in GitHub Actions (GH-139154) (#139791)
Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-10-08 18:56:52 +03:00
Miss Islington (bot)
ba738f46a7
[3.12] gh-139436: Remove `dist-pdf` from the docs archives rebuild target (GH-139437) (GH-139694)
(cherry picked from commit 0e2cdd313b)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-10-08 13:49:10 +02:00
Miss Islington (bot)
8392b2f0d3
[3.12] gh-139700: Check consistency of the zip64 end of central directory record (GH-139702) (GH-139708) (GH-139712)
(cherry picked from commit 333d4a6f49)

Support records with "zip64 extensible data" if there are no bytes
prepended to the ZIP file.
(cherry picked from commit 162997bb70)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-10-08 13:46:28 +02:00
Sebastian Pipping
dea7e3d5f8
[3.12] gh-139400: Make sure that parent parsers outlive their subparsers in pyexpat (GH-139403) (GH-139609)
Within libexpat, a parser created via `XML_ExternalEntityParserCreate`
is relying on its parent parser throughout its entire lifetime.
Prior to this fix, is was possible for the parent parser to be
garbage-collected too early.

(cherry picked from commit 6edb2ddb5f)
2025-10-07 13:56:31 +02:00
Miss Islington (bot)
f9f8cb92c9
[3.12] gh-139436: Remove link to the PDF downloads (GH-139142) (GH-139428)
(cherry picked from commit 6b5f15698a)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-10-07 13:48:45 +02:00
Sebastian Pipping
aecbbee1a2
[3.12] gh-139312: Update bundled libexpat to 2.7.3 (GH-139319) (GH-139662)
(cherry picked from commit 48d0d0dd97)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2025-10-07 13:47:30 +02:00
Miss Islington (bot)
bfb9e2f4a4
[3.12] gh-138998: Upgrade vendored expat to 2.7.2 (GH-138999) (#139026)
(cherry picked from commit 64c876dd68)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Stan Ulbrych <stanulbrych@gmail.com>
2025-10-06 16:07:20 +02:00
Serhiy Storchaka
dcf24768c9
[3.12] gh-135661: Fix CDATA section parsing in HTMLParser (GH-135665) (#137774)
"] ]>" and "]] >" no longer end the CDATA section.

Make CDATA section parsing  context depending.
Add private method HTMLParser._set_support_cdata() to change the context.
If called with True, "<[CDATA[" starts a CDATA section which ends with "]]>".
If called with False, "<[CDATA[" starts a bogus comments which ends with ">".
(cherry picked from commit 0cbbfc4621)
2025-10-06 16:06:29 +02:00
Seth Michael Larson
ade85bc5f4
[3.12] gh-139330: Check expat version/checksum in SBOM with refresh.sh
* [3.12] gh-139330: Check expat version/checksum in SBOM with refresh.sh

Check expat version/checksum in SBOM with refresh.sh
(cherry picked from commit 89b5571)

Co-authored-by: Seth Michael Larson <seth@python.org>

* 2.7.1
2025-09-26 17:23:04 +00:00
Hugo van Kemenade
cc9a7d8587
[3.12] gh-138744: GitHub Actions: pin to windows-2022 (GH-138743) (#138754)
(cherry picked from commit 6e78a539bf)
2025-09-26 19:06:04 +02:00
Hugo van Kemenade
71c84fadf4
[3.12] GH-136155: Use `sphinxext-opengraph` v0.12.0 (GH-137393) (#138741)
(cherry picked from commit 39bd7c3156)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-09-24 12:27:40 +01:00
Hugo van Kemenade
1793b7291f
[3.12] gh-136155: Use `sphinxext-opengraph` v0.12.0 (#136406)
Co-authored-by: Maciej Olko <maciej.olko@affirm.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2025-09-08 11:31:44 +03:00
Hugo van Kemenade
e709361fc8
[3.12] gh-131038: Use text=True in subprocesses in test_perf_profiler (#137117) (#138024)
gh-131038: Use text=True in subprocesses in test_perf_profiler (#137117)

(cherry picked from commit a852c7bdd4)

Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
2025-08-21 15:18:35 +01:00
Miss Islington (bot)
c9d9f78feb
[3.12] gh-130577: tarfile now validates archives to ensure member offsets are non-negative (GH-137027) (#137171)
(cherry picked from commit 7040aa54f1)

Co-authored-by: Alexander Urieles <aeurielesn@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-08-04 13:45:06 +02:00
Miss Islington (bot)
f66c75f11d
[3.12] gh-118350: Fix support of elements "textarea" and "title" in HTMLParser (GH-135310) (GH-136986)
(cherry picked from commit 4d02f31cdd)

Co-authored-by: Timon Viola <44016238+timonviola@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-07-22 14:31:27 +02:00
Miss Islington (bot)
ad695f5328
[3.12] gh-135661: Fix parsing attributes with whitespaces around the "=" separator in HTMLParser (GH-136908) (GH-136919)
This fixes a regression introduced in GH-135930.
(cherry picked from commit dee6501894)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-07-22 11:56:39 +02:00
Miss Islington (bot)
ef053a92d5
[3.12] gh-102555: Fix comment parsing in HTMLParser according to the HTML5 standard (GH-135664) (GH-136273)
* "--!>" now ends the comment.
* "-- >" no longer ends the comment.
* Support abnormally ended empty comments "<-->" and "<--->".

---------
(cherry picked from commit 8ac7613dc8)


Co-author: Kerim Kabirov <the.privat33r+gh@pm.me>

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
2025-07-12 14:24:52 +02:00
stratakis
aaca85949a
[3.12] gh-128605: Add branch protections for x86_64 in asm_trampolineS (#128606) (#135094)
[3.12] gh-128605: Add branch protections for x86_64 in asm_trampoline.S (#128606)

Apply Intel Control-flow Technology for x86-64 on asm_trampoline.S.

Required for mitigation against return-oriented programming (ROP)
and Call or Jump Oriented Programming (COP/JOP) attacks.

Manual application is required for the assembly files.

See also: https://sourceware.org/annobin/annobin.html/Test-cf-protection.html
2025-07-10 11:22:14 +01:00
Pablo Galindo Salgado
b69f3118a9
[3.12] gh-130077: Properly match full soft keywords in the parser (GH-135317) (#135400)
(cherry picked from commit ff2b5f40c2)
2025-07-09 00:40:55 +01:00
Serhiy Storchaka
c555f889c3
[3.12] gh-135661: Fix parsing start and end tags in HTMLParser according to the HTML5 standard (GH-135930) (GH-136268)
* Whitespaces no longer accepted between `</` and the tag name.
  E.g. `</ script>` does not end the script section.

* Vertical tabulation (`\v`) and non-ASCII whitespaces no longer recognized
  as whitespaces. The only whitespaces are `\t\n\r\f `.

* Null character (U+0000) no longer ends the tag name.

* Attributes and slashes after the tag name in end tags are now ignored,
  instead of terminating after the first `>` in quoted attribute value.
  E.g. `</script/foo=">"/>`.

* Multiple slashes and whitespaces between the last attribute and closing `>`
  are now ignored in both start and end tags. E.g. `<a foo=bar/ //>`.

* Multiple `=` between attribute name and value are no longer collapsed.
  E.g. `<a foo==bar>` produces attribute "foo" with value "=bar".

* Whitespaces between the `=` separator and attribute name or value are no
  longer ignored. E.g. `<a foo =bar>` produces two attributes "foo" and
  "=bar", both with value None; `<a foo= bar>` produces two attributes:
  "foo" with value "" and "bar" with value None.

* Fix data loss after unclosed script or style tag (gh-86155).

Also backport test.support.subTests() (gh-135120).

---------
(cherry picked from commit 0243f97cba)

Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
Co-authored-by: Waylan Limberg <waylan.limberg@icloud.com>
2025-07-04 17:28:00 +02:00
Serhiy Storchaka
ab0893fd5c
[3.12] gh-135462: Fix quadratic complexity in processing special input in HTMLParser (GH-135464) (GH-135483)
End-of-file errors are now handled according to the HTML5 specs --
comments and declarations are automatically closed, tags are ignored.
(cherry picked from commit 6eb6c5dbfb)
2025-07-04 00:12:10 +02:00
Łukasz Langa
033aa5cfd8
[3.12] gh-132415: Update vendored setuptools in `Lib/test/wheeldata (GH-132887) (GH-135393)
(cherry picked from commit c9f3f5b4ed)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-06-11 17:28:51 +02:00
Miss Islington (bot)
d43cb4f31a
[3.12] gh-132415: Use shutil.which() in missing_compiler_executable() (GH-132906) (GH-135392)
Replace deprecated distutils.spawn.find_executable() with
shutil.which() in missing_compiler_executable() of test.support.
(cherry picked from commit de6482eda3)

Co-authored-by: Victor Stinner <vstinner@python.org>
2025-06-11 17:00:01 +02:00
Thomas Wouters
fd6c5fe786 Post 3.12.11 2025-06-03 20:31:47 +02:00
Thomas Wouters
55fee9cf21 Python 3.12.11 2025-06-03 17:41:47 +02:00
Petr Viktorin
28463dba11
[3.12] gh-135034: Remove test_realpath_permission (GH-135093)
The test was added in gh-110298, with a fix that was never backported
to 3.12 and below.
It was most likely skipped in the GHA run.
2025-06-03 16:58:06 +02:00
Miss Islington (bot)
fcf3ea0f99
[3.12] gh-128840: Fix parsing long IPv6 addresses with embedded IPv4 address (GH-134836) (GH-134847)
(cherry picked from commit d83576bf48)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-06-03 16:25:28 +02:00
Miss Islington (bot)
3217780bbe
[3.12] gh-123409: fix IPv6Address.reverse_pointer for IPv4-mapped addresses (GH-123419) (GH-135086)
Fix functionality that was broken with better textual representation for IPv4-mapped addresses (gh-87799)
(cherry picked from commit 77a2fb4bf1)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-06-03 16:08:03 +02:00