CVE-2024-12254
Severity CVSS v4.0:
HIGH
Type:
CWE-400
Uncontrolled Resource Consumption ('Resource Exhaustion')
Publication date:
06/12/2024
Last modified:
04/04/2025
Description
Starting in Python 3.12.0, the asyncio._SelectorSocketTransport.writelines()<br />
method would not "pause" writing and signal to the Protocol to drain <br />
the buffer to the wire once the write buffer reached the "high-water <br />
mark". Because of this, Protocols would not periodically drain the write<br />
buffer potentially leading to memory exhaustion.<br />
<br />
<br />
<br />
<br />
<br />
This<br />
vulnerability likely impacts a small number of users, you must be using<br />
Python 3.12.0 or later, on macOS or Linux, using the asyncio module <br />
with protocols, and using .writelines() method which had new <br />
zero-copy-on-write behavior in Python 3.12.0 and later. If not all of <br />
these factors are true then your usage of Python is unaffected.
Impact
Base Score 4.0
8.70
Severity 4.0
HIGH
Base Score 3.x
7.50
Severity 3.x
HIGH
References to Advisories, Solutions, and Tools
- https://github.com/python/cpython/commit/71e8429ac8e2adc10084ab5ec29a62f4b6671a82
- https://github.com/python/cpython/commit/9aa0deb2eef2655a1029ba228527b152353135b5
- https://github.com/python/cpython/commit/e991ac8f2037d78140e417cc9a9486223eb3e786
- https://github.com/python/cpython/issues/127655
- https://github.com/python/cpython/pull/127656
- https://mail.python.org/archives/list/security-announce@python.org/thread/H4O3UBAOAQQXGT4RE3E4XQYR5XLROORB/
- http://www.openwall.com/lists/oss-security/2024/12/06/1
- https://security.netapp.com/advisory/ntap-20250404-0010/