Python versions 3.10.8, 3.9.15, 3.8.15, 3.7.15 now available

Déjà vu? Right, a month after the expedited releases we are doing the dance again. This coincides with the regular scheduled time for 3.10.8 but since we accrued a few fixes in 3.7 – 3.9 as well, we’re again releasing all four editions at the same time. We’re not promising to continue at this pace :sweat_smile:

Security content this time

  • CVE-2022-40674: bundled libexpat was upgraded from 2.4.7 to 2.4.9 which fixes a heap use-after-free vulnerability in function doContent
  • gh-97616: a fix for a possible buffer overflow in list *= int
  • gh-97612: a fix for possible shell injection in the example script get-remote-certificate.py(this issue originally had a CVE assigned to it, which its author withdrew)
  • gh-96577: a fix for a potential buffer overrun in msilib

Python 3.10.8

Get it here: https://www.python.org/downloads/release/python-3108/

As a bugfix release coming a mere month after an out-of-schedule security release, 3.10.8 is somewhat smaller compared to 3.9.8 released at the same stage of the release cycle a year ago. There’s 151 commits vs 204 in 3.9. It’s still a larger release than 3.10.7 at 113 commits. One way or the other, it’s worth checking out the change log.

And now for something completely different

Granular convection is a phenomenon where granular material subjected to shaking or vibration will exhibit circulation patterns similar to types of fluid convection.

It is sometimes described as the Brazil nut effect when the largest particles end up on the surface of a granular material containing a mixture of variously sized objects; this derives from the example of a typical container of mixed nuts, where the largest will be Brazil nuts.

The phenomenon is also known as the muesli effect since it is seen in packets of breakfast cereal containing particles of different sizes but similar densities, such as muesli mix.

Under experimental conditions, granular convection of variously sized particles has been observed forming convection cells similar to fluid motion.

We hope you enjoy the new releases!

Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation.

Your friendly release team,

Ned Deily @nad
Steve Dower @steve.dower
Pablo Galindo Salgado @pablogsal
Łukasz Langa @ambv

Related Articles

Python 3.11.1, 3.10.9, 3.9.16, 3.8.16, 3.7.16, and 3.12.0 alpha 3 are now available

Greetings! We bring you a slew of releases this fine Saint Nicholas /
Sinterklaas day. Six simultaneous releases has got to be some record.
There’s one more record we broke this time, you’ll see below.
In any case, updating is recommended due to security content:
3.7 – 3.12: gh-98739: Updated bundled libexpat to 2.5.0 to fix CVE-2022-43680 (heap use-after-free).3.7 – 3.12: gh-98433: The IDNA codec decoder used on DNS hostnames by socket or asyncio related name resolution functions no longer involves a quadratic algorithm to fix CVE-2022-45061.
This prevents a potential CPU denial of service if an out-of-spec
excessive length hostname involving bidirectional characters were
decoded. Some protocols such as urllib http 3xx redirects potentially allow for an attacker to supply such a name.3.7 – 3.12: gh-100001: python -m http.server no longer allows terminal control characters sent within a garbage request to be printed to the stderr server log.3.8 – 3.12: gh-87604: Avoid publishing list of active per-interpreter audit hooks via the gc module.3.9 – 3.10 (already released in 3.11+ before): gh-97514: On Linux the multiprocessing
module returns to using filesystem backed unix domain sockets for
communication with the forkserver process instead of the Linux abstract
socket namespace. Only code that chooses to use the “forkserver” start
method is affected. This prevents Linux CVE-2022-42919
(potential privilege escalation) as abstract sockets have no
permissions and could allow any user on the system in the same network
namespace (often the whole system) to inject code into the multiprocessing
forkserver process. This was a potential privilege escalation.
Filesystem based socket permissions restrict this to the forkserver
process user as was the default in Python 3.8 and earlier.3.7 – 3.10: gh-98517: Port XKCP’s fix for the buffer overflows in SHA-3 to fix CVE-2022-37454.3.7 – 3.9 (already released in 3.10+ before): gh-68966:
The deprecated mailcap module now refuses to inject unsafe text
(filenames, MIME types, parameters) into shell commands to address CVE-2015-20107. Instead of using such text, it will warn and act as if a match was not found (or for test commands, as if the test failed).

Python 3.12.0 alpha 3
Get it here, read the change log, sing a GPT-3-generated Sinterklaas song:https://www.python.org/downloads/release/python-3120a3/ 216 new commits since 3.12.0 alpha 2 last month.

Python 3.11.1
Get it here, see the change log, read the recipe for quark soup:https://www.python.org/downloads/release/python-3111/ A whopping 495 new commits since 3.11.0. This is a
massive increase of changes comparing to 3.10 at the same stage in the
release cycle: there were “only” 339 commits between 3.10.0 and 3.10.1.

Python 3.10.9
Get it here, read the change log, see circular patterns:https://www.python.org/downloads/release/python-3109/ 165 new commits.

Python 3.9.16
Get it here, read the change log, consider upgrading to a newer version:https://www.python.org/downloads/release/python-3916/ Security-only release with no binaries. 10 commits.

Python 3.8.16
Get it here, see the change log, definitely upgrade to a newer version:https://www.python.org/downloads/release/python-3816/ Security-only release with no binaries. 9 commits.

Python 3.7.16
Get it here, read the change log, check PEP 537 to confirm EOL is coming to this version in June 2023:https://www.python.org/downloads/release/python-3716/ Security-only release with no binaries. 8 commits.

We hope you enjoy the new releases!
Thanks to all of the many volunteers who help make Python Development
and these releases possible! Please consider supporting our efforts by
volunteering yourself or through organization contributions to the
Python Software Foundation.https://www.python.org/psf/ Your friendly release team,
Ned Deily @nad
Steve Dower @steve.dower
Pablo Galindo Salgado @pablogsal
Łukasz Langa @ambv
Thomas Wouters @thomas       

Pandas Open Source Development

We were joined by Joris Van den Bossche talked about the work being done with Pandas. Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.

SymPy Open Source Development

In this episode of Open Source Directions, we were joined by Aaron Meurer who will talk once again with Oscar Benjamin about the work he has been doing with SymPy. SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.

PyMC Open Source Development

In this episode of Open Source Directions, we were joined by Thomas Wiecki once again who talked about the work being done with PyMC. PyMC3 is a Python package for Bayesian statistical modeling and Probabilistic Machine Learning focusing on advanced Markov chain Monte Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and extensibility make it applicable to a large suite of problems.

Kedro Open Source Development

In this episode of Open Source Directions, we were joined by Yetunde Dada talked about the work being done with Kedro. Kedro is an open-source Python framework that applies software engineering best practices to data and machine-learning pipelines. You can use it, for example, to optimize the process of taking a machine learning model into a production environment. You can use Kedro to organize a single-user project running on a local environment, or collaborate in a team on an enterprise-level project.