CVE-2024-12254 - CVE House
Back to Database
Status published High CVE-2024-12254

Unbounded memory buffering in SelectorSocketTransport.writelines()

Vulnerability 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.

Impact Analysis

Refer to official advisory for detailed impact metrics.

Remediation

Ensure systems are updated to the latest vendor-supplied patch levels.

THREAT MONITOR

Am I Vulnerable?

Launch our assessment wizard to check if your infrastructure is exposed to • CVE-2024-12254

Credits & Attribution

The following person or organization is credited with identifying this vulnerability, as recorded in the NVD database:

  • J. Nick Koston
  • Seth Larson

Affected Vendor

Python Software Foundation

View all reports →

Affected Software

CPython
Vulnerable Versions:
3.12.0, 3.13.0, 3.14.0a1

Timeline

Official Publish: December 6th, 2024
Last Modified: April 4th, 2025
Added to House: July 22nd, 2026

CVSS Vectors

Weaknesses (CWE)