CVE-2024-12254
Fixed in a distro release EPSS 2%CVSS 8.7
Starting in Python 3.12.0, the asyncio._SelectorSocketTransport.writelines() method would not "pause" writing and signal to the Protocol to drain the buffer to the wire once the write buffer reached the "high-water mark". Because of this, Protocols would not periodically drain the write buffer potentially leading to memory exhaustion. This vulnerability likely impacts a small number of users, you must be using Python 3.12.0 or later, on macOS or Linux, using the asyncio module with protocols, and using .writelines() method which had new zero-copy-on-write behavior in Python 3.12.0 and later. If not all of these factors are true then your usage of Python is unaffected.
Products: Python Software Foundation CPython
Distro releases
| Release | Package | Fixed in |
|---|---|---|
| AlmaLinux 8 | python3.12 | 3.12.8-1.el8_10 |
| AlmaLinux 8 | python3.12-debug | 3.12.8-1.el8_10 |
| AlmaLinux 8 | python3.12-devel | 3.12.8-1.el8_10 |
| AlmaLinux 8 | python3.12-idle | 3.12.8-1.el8_10 |
| AlmaLinux 8 | python3.12-libs | 3.12.8-1.el8_10 |
| AlmaLinux 8 | python3.12-rpm-macros | 3.12.8-1.el8_10 |
| AlmaLinux 8 | python3.12-test | 3.12.8-1.el8_10 |
| AlmaLinux 8 | python3.12-tkinter | 3.12.8-1.el8_10 |
| AlmaLinux 9 | python3.12 | 3.12.5-2.el9_5.2 |
| AlmaLinux 9 | python3.12-debug | 3.12.5-2.el9_5.2 |
| AlmaLinux 9 | python3.12-devel | 3.12.5-2.el9_5.2 |
| AlmaLinux 9 | python3.12-idle | 3.12.5-2.el9_5.2 |
| AlmaLinux 9 | python3.12-libs | 3.12.5-2.el9_5.2 |
| AlmaLinux 9 | python3.12-test | 3.12.5-2.el9_5.2 |
| AlmaLinux 9 | python3.12-tkinter | 3.12.5-2.el9_5.2 |
| Alpine 3.20 | python3 | 3.12.8-r1 |
| Alpine 3.21 | python3 | 3.12.8-r1 |
| Alpine 3.22 | python3 | 3.12.8-r1 |
| Alpine 3.23 | python3 | 3.12.8-r1 |
| Alpine 3.24 | python3 | 3.12.8-r1 |
| Chainguard | python-3.12 | 3.12.8-r1 |
| Chainguard | python-3.12-base | 3.12.8-r1 |
| Chainguard | python-3.12-base-dev | 3.12.8-r1 |
| Chainguard | python-3.12-dev | 3.12.8-r1 |
| Chainguard | python-3.12-doc | 3.12.8-r1 |
| Chainguard | python-3.12-privileged-netbindservice | 3.12.8-r1 |
| Chainguard | python-3.12-tk | 3.12.8-r1 |
| Chainguard | python-3.13 | 3.13.1-r1 |
| Chainguard | python-3.13-base | 3.13.1-r1 |
| Chainguard | python-3.13-base-dev | 3.13.1-r1 |
| Chainguard | python-3.13-dev | 3.13.1-r1 |
| Chainguard | python-3.13-doc | 3.13.1-r1 |
| Chainguard | python-3.13-privileged-netbindservice | 3.13.1-r1 |
| Chainguard | python-3.13-tk | 3.13.1-r1 |
| Debian 13 | python3.13 | 3.13.1-2 |
| Debian 14 | python3.13 | 3.13.1-2 |
| Red Hat Enterprise Linux 10.0 | python-unversioned-command | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3 | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3-debug | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3-devel | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3-idle | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3-libs | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3-test | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3-tkinter | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3.12 | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3.12-debuginfo | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 10.0 | python3.12-debugsource | 0:3.12.9-1.el10 |
| Red Hat Enterprise Linux 8 | python3.12 | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-debug | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-debuginfo | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-debugsource | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-devel | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-idle | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-libs | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-rpm-macros | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-test | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 8 | python3.12-tkinter | 0:3.12.8-1.el8_10 |
| Red Hat Enterprise Linux 9 | python3.12 | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-debug | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-debuginfo | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-debugsource | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-devel | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-idle | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-libs | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-test | 0:3.12.5-2.el9_5.2 |
| Red Hat Enterprise Linux 9 | python3.12-tkinter | 0:3.12.5-2.el9_5.2 |
| Red Hat rhel eus 9.4 | python3.12 | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-debug | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-debuginfo | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-debugsource | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-devel | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-idle | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-libs | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-test | 0:3.12.1-4.el9_4.5 |
| Red Hat rhel eus 9.4 | python3.12-tkinter | 0:3.12.1-4.el9_4.5 |
| Rocky Linux 8 | python3.12 | 0:3.12.8-1.el8_10 |
| Rocky Linux 9 | python3.12 | 0:3.12.5-2.el9_5.2 |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | python312 | 3.12.9-150600.3.18.1 |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | python312 | 3.12.8-150600.3.12.1 |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | python312-core | 3.12.8-150600.3.12.1 |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | python312-core | 3.12.9-150600.3.18.1 |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | python313 | 3.13.5-150700.4.11.1 |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | python313-core | 3.13.5-150700.4.11.1 |
| Ubuntu 24.04 LTS | python3.12 | 3.12.3-1ubuntu0.4 |
| Wolfi | python-3.12 | 3.12.8-r1 |
| Wolfi | python-3.12-base | 3.12.8-r1 |
| Wolfi | python-3.12-base-dev | 3.12.8-r1 |
| Wolfi | python-3.12-dev | 3.12.8-r1 |
| Wolfi | python-3.12-doc | 3.12.8-r1 |
| Wolfi | python-3.12-privileged-netbindservice | 3.12.8-r1 |
| Wolfi | python-3.12-tk | 3.12.8-r1 |
| Wolfi | python-3.13 | 3.13.1-r1 |
| Wolfi | python-3.13-base | 3.13.1-r1 |
| Wolfi | python-3.13-base-dev | 3.13.1-r1 |
| Wolfi | python-3.13-dev | 3.13.1-r1 |
| Wolfi | python-3.13-doc | 3.13.1-r1 |
| Wolfi | python-3.13-privileged-netbindservice | 3.13.1-r1 |
| Wolfi | python-3.13-tk | 3.13.1-r1 |
| openSUSE Leap 15.6 | python312 | 3.12.8-150600.3.12.1 |
| openSUSE Leap 15.6 | python312 | 3.12.9-150600.3.18.1 |
| openSUSE Leap 15.6 | python312-core | 3.12.8-150600.3.12.1 |
| openSUSE Leap 15.6 | python312-core | 3.12.9-150600.3.18.1 |
| openSUSE Leap 15.6 | python312-documentation | 3.12.8-150600.3.12.1 |
| openSUSE Leap 15.6 | python312-documentation | 3.12.9-150600.3.18.1 |
| openSUSE Tumbleweed | python-aiohttp | 3.11.16-1.1 |
| openSUSE Tumbleweed | python312 | 3.12.8-1.1 |
| openSUSE Tumbleweed | python313 | 3.13.1-1.1 |