CVE-2024-12254CWE-400CWE-770denial-of-service

CVE-2024-12254

High · published December 6, 2024

CVSS v3.1
7.5
EPSS
2%
Percentile
79.2
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.01868 · 79.2th percentile
Weaknesses
CWE-400 · Uncontrolled Resource Consumption; CWE-770 · Allocation of Resources Without Limits or Throttling
Published
2024-12-06T21:15Z
References (8)
EPSS history
Timeline
  • 06 DEC 15:19Z
    Unbounded memory buffering in SelectorSocketTransport.writelines()
    cvelistv5