Unbounded memory buffering in SelectorSocketTransport.writelines()
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-400.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Python Software Foundation | CPython | before 3.12.9; 3.13.0 to before 3.13.2; 3.14.0a1 to before 3.14.0a3 | 3.12.9, 3.13.2, 3.14.0a3 | Patch available | CNA |
- CPython VendorPython Software Foundation Affected before 3.12.9; 3.13.0 to before 3.13.2; 3.14.0a1 to before 3.14.0a3 Fixed in 3.12.9, 3.13.2, 3.14.0a3 Patch available CNA
CPE names CISA-ADP · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:python_software_foundation:cpython:*:*:*:*:*:*:*:* | — | — | Python Software Foundation |
- cpe:2.3:a:python_software_foundation:cpython:*:*:*:*:*:*:*:* Versions — — ·Python Software Foundation
Remediation
- Fix · CNA CPython (Python Software Foundation) Fixed in 3.12.9, 3.13.2, 3.14.0a3
Red Hat 3 advisories
- RHSA-2024:11035 Released 2024-12-13 · Red Hat rating Importantpython3.12 security update
- Red Hat CodeReady Linux Builder EUS (v.9.4) python3.12-3.12.1-4.el9_4.5, python3.12-debug-3.12.1-4.el9_4.5, python3.12-idle-3.12.1-4.el9_4.5 +2
- Red Hat Enterprise Linux AppStream EUS (v.9.4) python3.12-3.12.1-4.el9_4.5, python3.12-devel-3.12.1-4.el9_4.5, python3.12-libs-3.12.1-4.el9_4.5 +1
- RHSA-2024:10980 Released 2024-12-12 · Red Hat rating Importantpython3.12 security update
- Red Hat Enterprise Linux AppStream (v. 8) python3.12-3.12.8-1.el8_10, python3.12-devel-3.12.8-1.el8_10, python3.12-libs-3.12.8-1.el8_10 +2
- Red Hat Enterprise Linux CRB (v. 8) python3.12-3.12.8-1.el8_10, python3.12-debug-3.12.8-1.el8_10, python3.12-idle-3.12.8-1.el8_10 +2
- RHSA-2024:10978 Released 2024-12-12 · Red Hat rating Importantpython3.12 security update
- Red Hat CodeReady Linux Builder (v. 9) python3.12-3.12.5-2.el9_5.2, python3.12-debug-3.12.5-2.el9_5.2, python3.12-idle-3.12.5-2.el9_5.2 +2
- Red Hat Enterprise Linux AppStream (v. 9) python3.12-3.12.5-2.el9_5.2, python3.12-devel-3.12.5-2.el9_5.2, python3.12-libs-3.12.5-2.el9_5.2 +1
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat CodeReady Linux Builder (v. 9) | Fixed | RHSA-2024:10978 |
| Red Hat CodeReady Linux Builder EUS (v.9.4) | Fixed | RHSA-2024:11035 |
| Red Hat Enterprise Linux AppStream (v. 10) | Fixed | — |
| Red Hat Enterprise Linux AppStream (v. 8) | Fixed | RHSA-2024:10980 |
| Red Hat Enterprise Linux AppStream (v. 9) | Fixed | RHSA-2024:10978 |
| Red Hat Enterprise Linux AppStream EUS (v.9.4) | Fixed | RHSA-2024:11035 |
| Red Hat Enterprise Linux BaseOS (v. 10) | Fixed | — |
| Red Hat Enterprise Linux CRB (v. 8) | Fixed | RHSA-2024:10980 |
| Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) | Fixed | — |
Not affected: 5 products
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- Red Hat Enterprise Linux AI (RHEL AI)
Timeline
- 2026-10-02 Threatist record created from CVE-2024-12254
- 2026-10-03 Alias added: GHSA-ph84-rcj2-fxxm
References
Patch 4
Advisory 1
More Python Software Foundation vulnerabilities
- TI-2024-07037 Quadratic complexity parsing cookies with backslashes CVSS 3.1HIGH 7.5
- TI-2024-11791 Bypass extraction filter to modify file metadata outside extraction directory CVSS 3.1MEDIUM 5.3
- TI-2024-00411 Quoted zip-bomb protection for zipfile CVSS 3.1MEDIUM 6.2
- TI-2026-13296 `HTTPPasswordMgr` can send saved HTTPS credentials via HTTP because of incorrect scheme matching CVSS 4.0MEDIUM 6.0
- TI-2024-06422 Email header injection due to unquoted newlines CVSS 3.1MEDIUM 5.5
- TI-2026-04606 Possible to hijack modules in current working directory CVSS 4.0MEDIUM 5.6
Sources
- CVE-2024-12254 · CVE Program
- CVE-2024-12254 · NVD
- FIRST EPSS
- GHSA-ph84-rcj2-fxxm · GitHub Advisory Database · CC BY 4.0
- CVE-2024-12254 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences