diff --git a/content/posts/python-31214-31116-31021/index.md b/content/posts/python-31214-31116-31021/index.md index d0ea56c..c80aae3 100644 --- a/content/posts/python-31214-31116-31021/index.md +++ b/content/posts/python-31214-31116-31021/index.md @@ -22,7 +22,7 @@ New security releases for 3.10, 3.11 and 3.12 are now available. (As these Pytho * [gh-87451](https://github.com/python/cpython/issues/87451): The [`ftplib`](https://docs.python.org/release/3.12.14/library/ftplib.html#module-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`](https://docs.python.org/release/3.12.14/library/ftplib.html#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. * [gh-145506](https://github.com/python/cpython/issues/145506): Fixes [**CVE 2026-2297**](https://www.cve.org/CVERecord?id=CVE-2026-2297) by ensuring that `SourcelessFileLoader` uses [`io.open_code()`](https://docs.python.org/release/3.12.14/library/io.html#io.open_code) when opening `.pyc` files. * [gh-144370](https://github.com/python/cpython/issues/144370): Disallow usage of control characters in status in [`wsgiref.handlers`](https://docs.python.org/release/3.12.14/library/wsgiref.html#module-wsgiref.handlers) to prevent HTTP header injections. Patch by Benedikt Johannes. -* [gh-145986](https://github.com/python/cpython/issues/145986): [`xml.parsers.expat`](https://docs.python.org/release/3.12.14/library/pyexpat.html#module-xml.parsers.expat): Fixed a crash caused by unbounded C recursion when converting deeply nested XML content models with [`ElementDeclHandler()`](https://docs.python.org/release/3.12.14/library pyexpat.html#xml.parsers.expat.xmlparser.ElementDeclHandler). This addresses [**CVE 2026-4224**](https://www.cve.org/CVERecord?id=CVE-2026-4224). +* [gh-145986](https://github.com/python/cpython/issues/145986): [`xml.parsers.expat`](https://docs.python.org/release/3.12.14/library/pyexpat.html#module-xml.parsers.expat): Fixed a crash caused by unbounded C recursion when converting deeply nested XML content models with [`ElementDeclHandler()`](https://docs.python.org/release/3.12.14/library/pyexpat.html#xml.parsers.expat.xmlparser.ElementDeclHandler). This addresses [**CVE 2026-4224**](https://www.cve.org/CVERecord?id=CVE-2026-4224). * [gh-145599](https://github.com/python/cpython/issues/145599): Reject control characters in [`http.cookies.Morsel`](https://docs.python.org/release/3.12.14/library/http.cookies.html#http.cookies.Morsel) [`update()`](https://docs.python.org/release/3.12.14/library/http.cookies.html#http.cookies.Morsel.update) and [`js_output()`](https://docs.python.org/release/3.12.14/library/http.cookies.html#http.cookies.BaseCookie.js_output). This addresses [**CVE 2026-3644**](https://www.cve.org/CVERecord?id=CVE-2026-3644). * [gh-148395](https://github.com/python/cpython/issues/148395): Fix a dangling input pointer in [`lzma.LZMADecompressor`](https://docs.python.org/release/3.12.14/library/lzma.html#lzma.LZMADecompressor), [`bz2.BZ2Decompressor`](https://docs.python.org/release/3.12.14/library/bz2.html#bz2.BZ2Decompressor), and internal `zlib._ZlibDecompressor` when memory allocation fails with [`MemoryError`](https://docs.python.org/release/3.12.14/library/exceptions.html#MemoryError), which could let a subsequent `decompress()` call read or write through a stale pointer to the already-released caller buffer. * [gh-148169](https://github.com/python/cpython/issues/148169): A bypass in [`webbrowser`](https://docs.python.org/release/3.12.14/library/webbrowser.html#module-webbrowser) allowed URLs prefixed with `%action` to pass the dash-prefix safety check.