Vulnerability · Published Dec 6, 2024 · Assigned by PSF

CVE-2024-12254Unbounded memory buffering in SelectorSocketTransport.writelines()

High 7.5

In plain English

A high-severity uncontrolled resource consumption in CPython from Python Software Foundation. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 1.9% (higher than 79% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.5High
Exploit odds (30 days)1.9%top 20.6% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

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.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:8python3.123.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:9python3.123.12.5-2.el9_5.2ALSA-2024:10978
AlmaLinux:8python3.12-debug3.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:9python3.12-debug3.12.5-2.el9_5.2ALSA-2024:10978
AlmaLinux:8python3.12-devel3.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:9python3.12-devel3.12.5-2.el9_5.2ALSA-2024:10978
AlmaLinux:8python3.12-idle3.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:9python3.12-idle3.12.5-2.el9_5.2ALSA-2024:10978
AlmaLinux:8python3.12-libs3.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:9python3.12-libs3.12.5-2.el9_5.2ALSA-2024:10978
AlmaLinux:8python3.12-rpm-macros3.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:8python3.12-test3.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:9python3.12-test3.12.5-2.el9_5.2ALSA-2024:10978
AlmaLinux:8python3.12-tkinter3.12.8-1.el8_10ALSA-2024:10980
AlmaLinux:9python3.12-tkinter3.12.5-2.el9_5.2ALSA-2024:10978
Alpine:v3.20python33.12.8-r1ALPINE-CVE-2024-12254
Alpine:v3.21python33.12.8-r1ALPINE-CVE-2024-12254
Alpine:v3.22python33.12.8-r1ALPINE-CVE-2024-12254
Alpine:v3.23python33.12.8-r1ALPINE-CVE-2024-12254
Alpine:v3.24python33.12.8-r1ALPINE-CVE-2024-12254
Debian:13python3.133.13.1-2DEBIAN-CVE-2024-12254
Rocky Linux:8python3.120:3.12.8-1.el8_10RLSA-2024:10980
Ubuntu:24.04:LTSpython3.123.12.3-1ubuntu0.4UBUNTU-CVE-2024-12254
Ubuntu:24.04:LTSpython3.123.12.3-1ubuntu0.4USN-7219-1

Affected products (as reported)

VendorProductVersions
Python Software Foundation CPython 0 – before 3.12.93.13.0 – before 3.13.23.14.0a1 – before 3.14.0a3

Weakness: CWE-400, CWE-770 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References