{"id":"UBUNTU-CVE-2024-12254","details":"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.","modified":"2026-04-22T17:33:16.635980Z","published":"2024-12-06T16:15:00Z","related":["USN-7219-1"],"upstream":["CVE-2024-12254"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2024-12254"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2024-12254"},{"type":"REPORT","url":"https://github.com/python/cpython/pull/127656"},{"type":"REPORT","url":"https://mail.python.org/archives/list/security-announce@python.org/thread/H4O3UBAOAQQXGT4RE3E4XQYR5XLROORB/"},{"type":"REPORT","url":"http://www.openwall.com/lists/oss-security/2024/12/06/1"},{"type":"ADVISORY","url":"https://ubuntu.com/security/notices/USN-7219-1"}],"affected":[{"package":{"name":"python3.12","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/python3.12@3.12.3-1ubuntu0.4?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.12.3-1ubuntu0.4"}]}],"versions":["3.12.0-1","3.12.0-5","3.12.0-6","3.12.0-7","3.12.1-2","3.12.2-1","3.12.2-4build3","3.12.2-4build4","3.12.2-5ubuntu3","3.12.3-1","3.12.3-1ubuntu0.1","3.12.3-1ubuntu0.2","3.12.3-1ubuntu0.3"],"ecosystem_specific":{"availability":"No subscription required","binaries":[{"binary_name":"idle-python3.12","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"libpython3.12-minimal","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"libpython3.12-stdlib","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"libpython3.12-testsuite","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"libpython3.12t64","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"python3.12","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"python3.12-examples","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"python3.12-full","binary_version":"3.12.3-1ubuntu0.4"},{"binary_name":"python3.12-minimal","binary_version":"3.12.3-1ubuntu0.4"},{"binary_version":"3.12.3-1ubuntu0.4","binary_name":"python3.12-nopie"},{"binary_name":"python3.12-venv","binary_version":"3.12.3-1ubuntu0.4"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2024/UBUNTU-CVE-2024-12254.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"},{"type":"Ubuntu","score":"medium"}]}