|
| 1 | +--- |
| 2 | +title: 'Python 3.12.13, 3.11.15 and 3.10.20 are now available!' |
| 3 | +publishDate: '2026-03-03' |
| 4 | +author: Thomas Wouters |
| 5 | +description: '[](https://discuss.python.org/t/python-3-12-13-3-11-15-and-3-10-20-are-now-available/106363)Python 3.12.13, 3.11.15 and 3.10.20 are now available!' |
| 6 | +tags: |
| 7 | + - releases |
| 8 | +published: true |
| 9 | +--- |
| 10 | + |
| 11 | +# [](https://discuss.python.org/t/python-3-12-13-3-11-15-and-3-10-20-are-now-available/106363)Python 3.12.13, 3.11.15 and 3.10.20 are now available! |
| 12 | + |
| 13 | +New security releases for 3.10, 3.11 and 3.12 are now available. (As these Python versions are now in security-fix-only mode, these are source-only releases, and there is no pre-set release cadence.) |
| 14 | + |
| 15 | +## Security content in these releases |
| 16 | + |
| 17 | +### Email and header-related |
| 18 | +* [gh-144125](https://github.com/python/cpython/issues/144125): `email.generator.BytesGenerator` now refuses to serialize headers that are unsafely folded or delimited (see `email.policy.Policy.verify_generated_headers`); addressing [CVE-2024-6923](https://nvd.nist.gov/vuln/detail/CVE-2024-6923). |
| 19 | +* [gh-143935](https://github.com/python/cpython/issues/143935): Fixed comment folding in modern email policies to prevent header injection when very long non-foldable comment text is wrapped. |
| 20 | +* [gh-136063](https://github.com/python/cpython/issues/136063): `email.message` now ensures linear complexity for legacy HTTP parameter parsing. |
| 21 | + |
| 22 | +### HTTP, cookies, and URL parsing-related |
| 23 | +* [gh-143916](https://github.com/python/cpython/issues/143916): `wsgiref.headers.Headers` now rejects C0 control characters in fields, values, and parameters. |
| 24 | +* [gh-143919](https://github.com/python/cpython/issues/143919): `http.cookies.Morsel` now rejects control characters in fields and values. |
| 25 | +* [gh-143925](https://github.com/python/cpython/issues/143925): `data:` URL media types now reject control characters. |
| 26 | + |
| 27 | +### XML-related |
| 28 | +* [gh-144363](https://github.com/python/cpython/issues/144363): Upgraded bundled libexpat to 2.7.4 to fix [CVE-2026-24515](https://nvd.nist.gov/vuln/detail/CVE-2026-24515) and [CVE-2026-25210](https://nvd.nist.gov/vuln/detail/CVE-2026-25210). |
| 29 | +* [gh-90949](https://github.com/python/cpython/issues/90949): Added Expat allocation-tracker APIs to `xml.parsers.expat` parser objects to limit memory amplification from malicious XML input; includes mitigation for [CVE-2025-59375](https://nvd.nist.gov/vuln/detail/CVE-2025-59375). |
| 30 | +* [gh-142145](https://github.com/python/cpython/issues/142145): Removed quadratic behavior in `xml.dom.minidom` node ID cache clearing. |
| 31 | + |
| 32 | +### Denial-of-service hardening |
| 33 | +* [gh-119342](https://github.com/python/cpython/issues/119342): Fixed a potential memory denial of service in `plistlib`. |
| 34 | +* [gh-119451](https://github.com/python/cpython/issues/119451): Fixed a potential memory denial of service in `http.client`. |
| 35 | +* [gh-119452](https://github.com/python/cpython/issues/119452): Fixed a potential memory denial of service in `http.server` (CGI server on Windows). |
| 36 | +* [gh-136065](https://github.com/python/cpython/issues/136065): Fixed quadratic complexity in `os.path.expandvars()`. |
| 37 | + |
| 38 | +### HTML parsing-related |
| 39 | +* [gh-137836](https://github.com/python/cpython/issues/137836): Hardened `html.parser.HTMLParser` with support for additional RAWTEXT/PLAINTEXT elements (`plaintext`, `xmp`, `iframe`, `noembed`, `noframes`, optional `noscript`), improving robust handling of hostile markup. |
| 40 | + |
| 41 | +### SSL memory-safety fixes |
| 42 | +* [gh-144833](https://github.com/python/cpython/issues/144833): Fixed a use-after-free in `ssl` when `SSL_new()` fails. |
| 43 | + |
| 44 | +# Python 3.12.13 |
| 45 | + |
| 46 | +https://www.python.org/downloads/release/python-31213/ |
| 47 | + |
| 48 | +# Python 3.11.15 |
| 49 | + |
| 50 | +Additional fixes in this release (they were already included in a previous 3.12 release): |
| 51 | +* [gh-120298](https://github.com/python/cpython/issues/120298): Fixed a use-after-free in list rich comparison handling (`list_richcompare_impl`) for specially crafted concurrent inputs. |
| 52 | +* [gh-120384](https://github.com/python/cpython/issues/120384): Fixed an out-of-bounds access in list slice assignment (`list_ass_subscript`) under specially crafted concurrent inputs. |
| 53 | + |
| 54 | + |
| 55 | +https://www.python.org/downloads/release/python-31115/ |
| 56 | + |
| 57 | +# Python 3.10.20 |
| 58 | + |
| 59 | +Additional fixes in this release (they were already included in a previous 3.12 release): |
| 60 | +* [gh-120298](https://github.com/python/cpython/issues/120298): Fixed a use-after-free in list rich comparison handling (`list_richcompare_impl`) for specially crafted concurrent inputs. |
| 61 | +* [gh-120384](https://github.com/python/cpython/issues/120384): Fixed an out-of-bounds access in list slice assignment (`list_ass_subscript`) under specially crafted concurrent inputs. |
| 62 | + |
| 63 | +https://www.python.org/downloads/release/python-31020/ |
| 64 | + |
| 65 | +## Stay safe and upgrade! |
| 66 | + |
| 67 | +As always, upgrading is highly recommended to all users of affected versions. |
| 68 | + |
| 69 | +## Enjoy the new releases |
| 70 | + |
| 71 | +Thanks to all of the many volunteers who help make Python Development and this release possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the [Python Software Foundation](https://www.python.org/psf-landing/). |
| 72 | + |
| 73 | +Regards from your security-fix release team, |
| 74 | +Thomas Wouters |
| 75 | +Pablo Galindo Salgado |
0 commit comments