12425 Commits

Author SHA1 Message Date
Sebastian Pipping
1173f8068b
[3.10] gh-90949: add Expat API to prevent XML deadly allocations (CVE-2025-59375) (GH-139234) (#139532)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-11-25 15:25:12 +00:00
Sebastian Pipping
8ea678d6d1
[3.10] gh-139400: Make sure that parent parsers outlive their subparsers in pyexpat (GH-139403) (#139613)
* gh-139400: Make sure that parent parsers outlive their subparsers in `pyexpat` (#139403)

* Modules/pyexpat.c: Disallow collection of in-use parent parsers.

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 6edb2ddb5f3695cf4938979d645f31d7fba43ec8)

* Move news item to from section "Core and Builtins" to section "Security"
2025-10-07 00:34:14 +01:00
Stan Ulbrych
7252d2b73b
[3.10] gh-139312: Update bundled libexpat to 2.7.3 (GH-139319) (#139379) 2025-09-28 14:47:31 +01:00
Stan Ulbrych
a99632fa2f
[3.10] gh-138998: Upgrade vendored expat to 2.7.2 (#138999) (#139053)
gh-138998: Upgrade vendored expat to 2.7.2 (#138999)

(cherry picked from commit 64c876dd6812ade19cb7a0c619111d30f0b2b860)
2025-09-26 21:37:42 +01:00
Seth Michael Larson
53d4eaada7
[3.10] gh-131809: Upgrade vendored expat to 2.7.1 (GH-132192) (#132241)
(cherry picked from commit c0de6500249469e6fc5b458d6afb6bad1b6755cd)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-04-08 11:36:48 +02:00
Victor Stinner
48f455e11d
[3.10] gh-127257: ssl: Raise OSError for ERR_LIB_SYS (GH-127361) (GH-127905) (GH-131971)
gh-127257: ssl: Raise OSError for ERR_LIB_SYS (GH-127361)

From the ERR_raise manpage:

    ERR_LIB_SYS

        This "library code" indicates that a system error is
        being reported.  In this case, the reason code given
        to `ERR_raise()` and `ERR_raise_data()` *must* be
        `errno(3)`.

This PR only handles ERR_LIB_SYS for the high-lever error types
SSL_ERROR_SYSCALL and SSL_ERROR_SSL, i.e., not the ones where
OpenSSL indicates it has some more information about the issue.

(cherry picked from commit f4b31edf2d9d72878dab1f66a36913b5bcc848ec)
(cherry picked from commit 7f707fa6c67d0bfa9bbc1a9f344b932789659397)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2025-04-03 18:26:17 +02:00
Seth Michael Larson
b22e6076d2
[3.10] gh-131261: Update libexpat to 2.7.0 (CVE-2024-8176) (GH-131272) (#131363) 2025-04-01 10:40:26 +01:00
Seth Michael Larson
b3a6042361
[3.10] gh-126623: Update libexpat to 2.6.4, make future updates easier (GH-126792) (GH-126799)
(cherry picked from commit 3c9996909402fadc98e6ca2a64e75a71a7427352)
2024-12-02 16:07:06 +01:00
Seth Michael Larson
0e006ce344
[3.10] gh-123678: Upgrade libexpat 2.6.3 (#123710)
(cherry picked from commit fdc04ad75a410ed3af99edfc32c38b5fc3375f52)
2024-09-05 14:27:33 +02:00
Miss Islington (bot)
d3f39cefe7
[3.10] gh-112275: Fix HEAD_LOCK deadlock in child process after fork (GH-112336) (#123687)
HEAD_LOCK is called from _PyEval_ReInitThreads->_PyThreadState_DeleteExcept before _PyRuntimeState_ReInitThreads reinit runtime->interpreters.mutex which might be locked before fork.

(cherry picked from commit 522799a05e3e820339718151ac055af6d864d463)

Co-authored-by: ChuBoning <102216855+ChuBoning@users.noreply.github.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-09-04 19:26:29 +02:00
Steve Dower
2e861ac1cd
[3.10] gh-119690: Fixes buffer type confusion in _winapi.CreateFile and _winapi.CreateNamedPipe audit events (#119735)
gh-119690: Fixes buffer type confusion in _winapi.CreateFile and _winapi.CreateNamedPipe audit events
2024-09-04 17:57:40 +02:00
Łukasz Langa
d86ab5dde2
[3.10] gh-121957: Emit audit events for python -i and python -m asyncio (GH-122119) 2024-07-22 13:48:50 +02:00
Steve Dower
c8f868dc52
[3.10] gh-118486: Support mkdir(mode=0o700) on Windows (GH-118488) (GH-118740)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-05-24 19:26:44 +02:00
Seth Michael Larson
2ec7018191
[3.10] gh-116741: Upgrade libexpat to 2.6.2 (GH-117296) (GH-118186)
(cherry picked from commit c9829eec0883a8991ea4d319d965e123a3cf6c20)
2024-05-07 10:50:19 +02:00
jkriegshauser
812245ecce
[3.10] gh-116773: Fix overlapped memory corruption crash (GH-116774) (GH-117079)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-03-27 16:24:34 +01:00
Sebastian Pipping
516a6d4237
[3.10] gh-115398: Expose Expat >=2.6.0 reparse deferral API (CVE-2023-52425) (GH-115623) (GH-116270)
Allow controlling Expat >=2.6.0 reparse deferral (CVE-2023-52425) by adding five new methods:

- `xml.etree.ElementTree.XMLParser.flush`
- `xml.etree.ElementTree.XMLPullParser.flush`
- `xml.parsers.expat.xmlparser.GetReparseDeferralEnabled`
- `xml.parsers.expat.xmlparser.SetReparseDeferralEnabled`
- `xml.sax.expatreader.ExpatParser.flush`

Based on the "flush" idea from https://github.com/python/cpython/pull/115138#issuecomment-1932444270 .

Includes code suggested-by: Snild Dolkow <snild@sony.com>
and by core dev Serhiy Storchaka.

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2024-03-07 00:02:55 +01:00
Miss Islington (bot)
37324b421b
[3.10] gh-114572: Fix locking in cert_store_stats and get_ca_certs (GH-114573) (#115548)
gh-114572: Fix locking in cert_store_stats and get_ca_certs (GH-114573)

* gh-114572: Fix locking in cert_store_stats and get_ca_certs

cert_store_stats and get_ca_certs query the SSLContext's X509_STORE with
X509_STORE_get0_objects, but reading the result requires a lock. See
https://github.com/openssl/openssl/pull/23224 for details.

Instead, use X509_STORE_get1_objects, newly added in that PR.
X509_STORE_get1_objects does not exist in current OpenSSLs, but we can
polyfill it with X509_STORE_lock and X509_STORE_unlock.

* Work around const-correctness problem

* Add missing X509_STORE_get1_objects failure check

* Add blurb
(cherry picked from commit bce693111bff906ccf9281c22371331aaff766ab)

Co-authored-by: David Benjamin <davidben@google.com>
2024-02-20 16:35:27 +00:00
Miss Islington (bot)
d0524caed0
[3.10] Upgrade bundled libexpat to 2.6.0 (GH-115399) (GH-115468) (#115473)
Manual backport due to code differences.
(cherry picked from commit e071b0d558b2f5cddd5a9fc6afadb4ba109ec77e)

Co-authored-by: Seth Michael Larson <seth@python.org>
2024-02-19 14:58:39 +00:00
Łukasz Langa
c3108e1214
[3.10] gh-46968: Fix invalid reference to Sound eXchange (SoX) 12.17.7 license (GH-115094) (GH-115096)
(cherry picked from commit b39119916c0daaf5e5fdfec63e18ad97f29e2e72)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-02-06 19:53:23 +01:00
Miss Islington (bot)
32e7acdc05
[3.10] bpo-37013: Fix the error handling in socket.if_indextoname() (GH-13503) (GH-112599)
* Fix a crash when pass UINT_MAX.
* Fix an integer overflow on 64-bit non-Windows platforms.
(cherry picked from commit 0daf555c6fb3feba77989382135a58215e1d70a5)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2024-01-17 14:49:40 +01:00
Łukasz Langa
6c2f34fa77
[3.10] gh-101180: Fix a bug where iso2022_jp_3 and iso2022_jp_2004 codecs read out of bounds (gh-111695) (gh-111779)
(cherry picked from commit c8faa3568afd255708096f6aa8df0afa80cf7697)

Co-authored-by: Masayuki Moriyama <masayuki.moriyama@miraclelinux.com>
2023-11-06 15:46:20 +01:00
Miss Islington (bot)
1c937e5887
[3.10] gh-99612: Fix PyUnicode_DecodeUTF8Stateful() for ASCII-only data (GH-99613) (GH-107224) (#107230)
Previously *consumed was not set in this case.

(cherry picked from commit b8b3e6afc0a48c3cbb7c36d2f73e332edcd6058c)
(cherry picked from commit f08e52ccb027f6f703302b8c1a82db9fd3934270)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-08-22 20:24:40 +02:00
Pablo Galindo Salgado
c32f0955b4
[3.10] Revert "[3.10] gh-107077: Raise SSLCertVerificationError even if the error is set via SSL_ERROR_SYSCALL (GH-107586) (#107589)" (#107602) 2023-08-03 21:35:42 +01:00
Miss Islington (bot)
24d54feafc
[3.10] gh-107077: Raise SSLCertVerificationError even if the error is set via SSL_ERROR_SYSCALL (GH-107586) (#107589)
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Co-authored-by: T. Wouters <thomas@python.org>
2023-08-03 15:09:32 +01:00
Gregory P. Smith
cb37100bec
[3.10] gh-103142: Upgrade binary builds and CI to OpenSSL 1.1.1u (GH-105174) (GH-105200) (#105204)
Upgrade builds to OpenSSL 1.1.1u.

This OpenSSL version addresses a pile if less-urgent CVEs since 1.1.1t.

The Mac/BuildScript/build-installer.py was already updated.

Also updates _ssl_data_111.h from OpenSSL 1.1.1u, _ssl_data_300.h from 3.0.9.

Manual edits to the _ssl_data_300.h file prevent it from removing any existing definitions in case those exist in some peoples builds and were important (avoiding regressions during backporting).

(cherry picked from commit ede89af).
(cherry picked from commit a5d2b546c1b0b73d0695b98838a3ddd497382999)
(cherry picked from commit f90d3f68db720bd6d0deda8cc0030339ccd43858)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2023-06-05 18:07:30 +02:00
Miss Islington (bot)
b5bf6c1b22
[3.10] GH-95494: Fix transport EOF handling in OpenSSL 3.0 (GH-95495) (#103007)
GH-25309 enabled SSL_OP_IGNORE_UNEXPECTED_EOF by default, with a comment
that it restores OpenSSL 1.1.1 behavior, but this wasn't quite right.
That option causes OpenSSL to treat transport EOF as the same as
close_notify (i.e. SSL_ERROR_ZERO_RETURN), whereas Python actually has
distinct SSLEOFError and SSLZeroReturnError exceptions. (The latter is
usually mapped to a zero return from read.) In OpenSSL 1.1.1, the ssl
module would raise them for transport EOF and close_notify,
respectively. In OpenSSL 3.0, both act like close_notify.

Fix this by, instead, just detecting SSL_R_UNEXPECTED_EOF_WHILE_READING
and mapping that to the other exception type.

There doesn't seem to have been any unit test of this error, so fill in
the missing one. This had to be done with the BIO path because it's
actually slightly tricky to simulate a transport EOF with Python's fd
based APIs. (If you instruct the server to close the socket, it gets
confused, probably because the server's SSL object is still referencing
the now dead fd?)
(cherry picked from commit 420bbb783b43216cc897dc8914851899db37a31d)

Co-authored-by: David Benjamin <davidben@google.com>
2023-03-27 16:14:24 +02:00
Miss Islington (bot)
581dd8caba
[3.10] gh-102027: Fix macro name (GH-102124) (#102917)
gh-102027: Fix macro name (GH-102124)

This fixes the ssse3 / sse2 detection when sse4 is available.

(cherry picked from commit ea93bde4ece139d4152a59f2c38aa6568559447c)

Co-authored-by: Max Bachmann <kontakt@maxbachmann.de>
Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
2023-03-24 13:40:32 +01:00
Miss Islington (bot)
0a2b63f6ad
[3.10] gh-96931: Fix incorrect results in ssl.SSLSocket.shared_ciphers (GH-96932) (#102919)
gh-96931: Fix incorrect results in ssl.SSLSocket.shared_ciphers (GH-96932)
(cherry picked from commit af9c34f6ef8dceb21871206eb3e4d350f6e3d3dc)

Co-authored-by: Benjamin Fogle <benfogle@gmail.com>
2023-03-24 13:33:32 +01:00
Miss Islington (bot)
206c2b1b12
GH-100989: Revert Improve the accuracy of collections.deque docstrings (GH-102979)
(cherry picked from commit 7f01a11199864bcf230b243b99e8a51e9044675d)

Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com>
2023-03-23 18:10:34 -07:00
Miss Islington (bot)
100da7c31a
gh-100989: Improve the accuracy of collections.deque docstrings (GH-100990)
(cherry picked from commit c74073657e32b8872f91b3bbe1efa9af20adbea9)

Co-authored-by: Timo Ludwig <ti.ludwig@web.de>
Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
2023-03-22 05:39:45 -07:00
Miss Islington (bot)
c4fb41816f
[3.10] GH-102397: Fix segfault from race condition in signal handling (GH-102399) (#102527)
GH-102397: Fix segfault from race condition in signal handling (GH-102399)
(cherry picked from commit 1a84cc007e207f2dd61f86a7fc3d86632fdce72f)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2023-03-08 13:51:13 +05:30
Miss Islington (bot)
925ebfbfd2
[3.10] gh-102179: Fix os.dup2 error reporting for negative fds (GH-102180) (#102419)
* gh-102179: Fix `os.dup2` error reporting for negative fds (GH-102180)
(cherry picked from commit c2bd55d26f8eb2850eb9f9026b5d7f0ed1420b65)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2023-03-04 20:57:32 +05:30
Mark Dickinson
8e9ffd956a
[3.10] Add missing 'is' to cmath.log() docstring (GH-102049) (#102280)
Fix missing 'is' in cmath.log() docstring.
(cherry picked from commit 71f614ef2a3d66213b9cae807cbbc1ed03741221)

Co-authored-by: Owain Davies <116417456+OTheDev@users.noreply.github.com>
2023-02-26 14:56:10 +00:00
Miss Islington (bot)
3325029741
gh-101372: Fix unicodedata.is_normalized to properly handle the UCD 3… (gh-101388)
(cherry picked from commit 9ef7e75434587fc8f167d73eee5dd9bdca62714b)

Co-authored-by: Dong-hee Na <donghee.na@python.org>
2023-02-06 02:32:58 -08:00
Miss Islington (bot)
b134978467
[3.10] [3.11] gh-99952: fix refcount issues in ctypes.Structure from_param() result (GH-101339) (#101340)
[3.11] gh-99952: [ctypes] fix refcount issues in from_param() result. (GH-100169)

Fixes a reference counting issue with `ctypes.Structure` when a `from_param()` method call is used and the structure size is larger than a C pointer `sizeof(void*)`.

This problem existed for a very long time, but became more apparent in 3.8+ by change likely due to garbage collection cleanup timing changes..
(cherry picked from commit dfad678d7024ab86d265d84ed45999e031a03691)

(cherry picked from commit fa7c37af4936abfe34aa261d6ed9703bc5842ad4)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Yukihiro Nakadaira <yukihiro.nakadaira@gmail.com>
Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2023-02-04 12:09:29 -08:00
Miss Islington (bot)
8126628107
gh-100795: Don't call freeaddrinfo on failure. (GH-101252)
When getaddrinfo returns an error, the output pointer is in an unknown state
Don't call freeaddrinfo on it.  See the issue for discussion and details with
links to reasoning.  _Most_ libc getaddrinfo implementations never modify the
output pointer unless they are returning success.

(cherry picked from commit b724ac2fe7fbb5a7a33d639cad8e748f17b325e0)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Sergey G. Brester <github@sebres.de>
Co-authored-by: Oleg Iarygin <dralife@yandex.ru>
2023-01-23 15:27:41 -08:00
Miss Islington (bot)
940763140f
gh-82052: Don't send partial UTF-8 sequences to the Windows API (GH-101103)
Don't send partial UTF-8 sequences to the Windows API
(cherry picked from commit f34176b77f222726d901595968a4b44456186da4)

Co-authored-by: Paul Moore <p.f.moore@gmail.com>
2023-01-17 11:53:45 -08:00
Kumar Aditya
a3b65770a0
[3.10] GH-100892: Fix race in clearing threading.local (GH-100922). (#100938)
(cherry picked from commit 762745a124cbc297cf2fe6f3ec9ca1840bb2e873)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2023-01-11 21:02:02 +05:30
Miss Islington (bot)
b374481616
GH-81061: Fix refcount issue when returning None from a ctypes.py_object callback (GH-13364)
(cherry picked from commit 837ba052672d1a5f85a46c1b6d4b6e7d192af6f3)

Co-authored-by: dgelessus <dgelessus@users.noreply.github.com>
2023-01-09 07:54:00 -08:00
Miss Islington (bot)
0e00bce561
[3.10] gh-100689: Revert "bpo-41798: pyexpat: Allocate the expat_CAPI on the heap memory (GH-24061)" (GH-100745) (#100847)
gh-100689: Revert "bpo-41798: pyexpat: Allocate the expat_CAPI on the heap memory (GH-24061)" (GH-100745)

* gh-100689: Revert "bpo-41798: pyexpat: Allocate the expat_CAPI on the heap memory (GH-24061)"

This reverts commit 7c83eaa536d2f436ae46211ca48692f576c732f0.
(cherry picked from commit b034fd3e5926c63a681a211087b4c666834c7525)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2023-01-08 19:05:40 +05:30
Miss Islington (bot)
95c55a69b3
[3.10] gh-76963: PEP3118 itemsize of an empty ctypes array should not be 0 (GH-5576) (#100451)
gh-76963: PEP3118 itemsize of an empty ctypes array should not be 0 (GH-5576)

The itemsize returned in a memoryview of a ctypes array is now computed from the item type, instead of dividing the total size by the length and assuming that the length is not zero.
(cherry picked from commit 84bc6a4f25fcf467813ee12b74118f7b1b54e285)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
2022-12-23 08:55:55 +00:00
colorfulappl
591365cd49
[3.10] gh-99240: Reset pointer to NULL when the pointed memory is freed in argument parsing (GH-99890) (#100386)
(cherry picked from commit efbb1eb9f54cad4f7bf5df03eed3a6aba02d99f4)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2022-12-21 15:33:21 +05:30
colorfulappl
53063b7ffa
[3.10] gh-99240: Fix double-free bug in Argument Clinic str_converter generated code (GH-99241) (#100353)
(cherry picked from commit 8dbe08eb7c807f484fe9870f5b7f5ae2881fd966)

Fix double-free bug mentioned at GH-99240, by moving memory clean up out of "exit" label.
2022-12-20 15:50:42 +05:30
colorfulappl
3144aca3da
[3.10] gh-96002: Add functional test for Argument Clinic (GH-96178) (#100232)
(cherry picked from commit c450c8c9ed6e420025f39d0e4850a79f8160cdcd)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2022-12-17 12:06:06 +05:30
Łukasz Langa
300d812fd1
[3.10] gh-93453: Only emit deprecation warning in asyncio.get_event_loop when a new event loop is created (#100059)
It no longer emits a deprecation warning if the current event loop was set.

(cherry picked from commit 3fae04b10e2655a20a3aadb5e0d63e87206d0c67)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2022-12-06 18:40:30 +01:00
Łukasz Langa
b914eee222
[3.10] gh-60203: Revert changes in cycle.__setstate__ (GH-99982) (#100017)
In case if only True/False be supported as boolean arguments in future,
we should continue to support 1/0 here.
(cherry picked from commit 922a6cf6c265e2763a003291885ff74d46203fc3)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2022-12-05 17:58:30 +01:00
Luke Garland
b027dd78bb
bpo-40882: Fix a memory leak in SharedMemory on Windows (GH-20684)
In multiprocessing.shared_memory.SharedMemory(), the temporary view
returned by MapViewOfFile() should be unmapped when it is no longer
needed.
(cherry picked from commit 85c128e34daec7625b74746e127afa25888ccde1)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2022-12-02 10:13:33 +00:00
Kumar Aditya
a851797863
[3.10] bpo-31718: Fix io.IncrementalNewlineDecoder SystemErrors and s… (#99842)
[3.10] bpo-31718: Fix io.IncrementalNewlineDecoder SystemErrors and segfaults (GH-18640)

Co-authored-by: Oren Milman <orenmn@gmail.com>
Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>.
(cherry picked from commit 53eef27133c1da395b3b4d7ce0ab1d5b743ffb41)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2022-11-28 16:57:37 +05:30
Miss Islington (bot)
610b7798af
GH-95896: posixmodule.c: fix osdefs.h inclusion to not depend on compiler (GH-95897)
(cherry picked from commit ec2b76aa8b7c6313293ff9c6814e8bc31e08fcaf)

Co-authored-by: TheShermanTanker <32636402+TheShermanTanker@users.noreply.github.com>
Co-authored-by: Steve Dower <steve.dower@python.org>
2022-11-26 02:13:30 -08:00
Miss Islington (bot)
c42681546a
bpo-38031: Fix a possible assertion failure in _io.FileIO() (GH-GH-5688)
(cherry picked from commit d386115039e75c332c8471c239cf7dc5dee791a7)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2022-11-25 05:18:41 -08:00