High severity · published Dec 6, 2024
CVE-2024-12254
Unbounded memory buffering in SelectorSocketTransport.writelines()
7.5
CVSS
1.9%
EPSS
No
On KEV
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
None
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)1.9% · higher than 79% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
CP
CPython · Python Software Foundation
before 3.12.9; 3.13.0 before 3.13.2; 3.14.0a1 before 3.14.0a3 · source: vendor, CISA
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2024-12254
CVE.org
https://www.cve.org/CVERecord?id=CVE-2024-12254
github.com
https://github.com/python/cpython/commit/71e8429ac8e2adc10084ab5ec29a62f4b6671a82
github.com
https://github.com/python/cpython/commit/9aa0deb2eef2655a1029ba228527b152353135b5
github.com
https://github.com/python/cpython/commit/e991ac8f2037d78140e417cc9a9486223eb3e786
github.com
https://github.com/python/cpython/issues/127655
github.com
https://github.com/python/cpython/pull/127656
mail.python.org
https://mail.python.org/archives/list/security-announce@python.org/thread/H4O3UBAOAQQXGT4RE3E4XQYR5XLROORB/
More from CPython
9.4
CVE-2026-115557
Distrust compromised intermediate certificates in ssl module
9.4
CVE-2025-4517
Arbitrary writes via tarfile realpath overflow
9.2
CVE-2026-19445
Use-after-free of a server-side SSLContext when sni_callback switches contexts
8.8
CVE-2026-3298
Out-of-bounds write in Windows asyncio.ProacterEventLoop.sock_recvfrom_into() when using nbytes
8.7
CVE-2024-8088
Infinite loop when iterating over zip archive entry names from zipfile.Path
