Перейти к содержимому
Noroxi
NVD / CVE Program· CNA PSF

CVE-2024-12254: Unbounded memory buffering in SelectorSocketTransport.writelines()

Оценка Noroxi

Приоритет: Наблюдать (оценка срочности 35/100)

  • В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
  • Вероятность эксплуатации в ближайшие 30 дней: 1,8% (FIRST EPSS); выше, чем у 79,3% записей.
  • Может быть вызвана любым, у кого есть доступ через интернет. Учётная запись или пароль не требуются. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
  • По данным CISA атаку можно автоматизировать: цели находятся массовым сканированием.
  • Исправленная версия: Python Software Foundation CPython 3.12.9, 3.13.2, 3.14.0a3; azl3 python3 3.12.3-5 on Azure Linux 3.0 3.12.3-5.

Пока низкий приоритет. Обновитесь до Python Software Foundation CPython 3.12.9, 3.13.2, 3.14.0a3; azl3 python3 3.12.3-5 on Azure Linux 3.0 3.12.3-5 или новее.

Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем

Первоисточники: NVD · CVE.org · FIRST EPSS

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 8.7 · v4.0—Эксплойта нет Есть исправление
Опубликовано
6 дек. 2024 г.
Обновлено
31 июл. 2026 г.
EPSS
1,8 % · 79-й процентиль

Инструменты для отчёта

JSON

Оценка срочности

35

Наблюдать

Пока низкий приоритет.

CVSS
34 / 40 · 8.7 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
1 / 30 · 1,8 %

Решение CISA SSVC

Эксплуатация
нет
Автоматизируемо
да
Техническое влияние
частичное

Vulnrichment: входные данные дерева решений CISA.

Оценка CNA и NVD

NVD
—
CNA · PSF
8,7
NVD ещё не выставил свою оценку; показана оценка CNA.

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

Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.

Узнайте, когда запись изменится

  • Нет в KEV: эксплуатация в реальных атаках не зафиксирована
  • Публичного эксплойта нет
  • Исправление выпущено

Если что-то из этого изменится, сообщим в ежедневной сводке.

Следить за CVE-2024-12254

Когда мы напишем

  • когда запись попадёт в CISA KEV
  • когда появится или станет боевым эксплойт
  • когда запись обновится (в том числе исправленная версия)
  • когда EPSS вырастет на 20 пунктов за неделю

Одна сводка в день по почте (06:00 UTC); с вебхуком попадание в KEV и боевые эксплойты — сразу.

С бесплатным аккаунтом также

У вас WordPress? Проверьте сайт бесплатно в WP Lens

  • Оповещения по стеку: добавьте свои продукты и версии — новые CVE для них придут вам
  • Мониторинг сайта: 1 сайт, письмо сразу при недоступности
  • Добавьте домен: поддомены и риск захвата проверяются каждую неделю (1 домен)
  • 10 проверок в час в инструментах безопасности (без аккаунта — 3 в день), API-ключ и MCP
  • Все сканирования в одной панели: находки, изменения с прошлого сканирования, отчёт по домену или клиенту (PDF, ссылка для просмотра)
Все бесплатные инструменты

Регистрация по почте · Уже есть аккаунт? Войти

Бесплатный аккаунт, без карты. Отписаться можно в любой момент.

У вас WordPress? Проверьте сайт бесплатно в WP Lens

Затронута ли ваша версия? Проверьте

Анализ Noroxi

Что это значит для вашей инфраструктуры?

Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.

Мы используем этот продукт, нужна помощь

Затронутые системы

Затронута ли ваша версия?

Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.

ВендорПродукт
python software foundationcpython

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (PSF). Не зависят от анализа CPE в NVD и обычно опережают его.

  • Python Software Foundation CPython

    • до 3.12.9затронута · python
    • 3.13.0 и новее · до 3.13.2затронута · python
    • 3.14.0a1 и новее · до 3.14.0a3затронута · python

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
AlmaLinux:8python3.12до 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:8python3.12-debugдо 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:8python3.12-develдо 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:8python3.12-idleдо 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:8python3.12-libsдо 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:8python3.12-rpm-macrosдо 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:8python3.12-testдо 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:8python3.12-tkinterдо 3.12.8-1.el8_103.12.8-1.el8_10
AlmaLinux:9python3.12до 3.12.5-2.el9_5.23.12.5-2.el9_5.2
AlmaLinux:9python3.12-debugдо 3.12.5-2.el9_5.23.12.5-2.el9_5.2
AlmaLinux:9python3.12-develдо 3.12.5-2.el9_5.23.12.5-2.el9_5.2
AlmaLinux:9python3.12-idleдо 3.12.5-2.el9_5.23.12.5-2.el9_5.2
AlmaLinux:9python3.12-libsдо 3.12.5-2.el9_5.23.12.5-2.el9_5.2
AlmaLinux:9python3.12-testдо 3.12.5-2.el9_5.23.12.5-2.el9_5.2
AlmaLinux:9python3.12-tkinterдо 3.12.5-2.el9_5.23.12.5-2.el9_5.2
Alpine:v3.20python3до 3.12.8-r13.12.8-r1
Debian:13python3.13до 3.13.1-23.13.1-2
openSUSE:Leap 15.6python312до 3.12.8-150600.3.12.13.12.8-150600.3.12.1
openSUSE:Leap 15.6python312до 3.12.9-150600.3.18.13.12.9-150600.3.18.1
openSUSE:Leap 15.6python312-coreдо 3.12.8-150600.3.12.13.12.8-150600.3.12.1
openSUSE:Leap 15.6python312-coreдо 3.12.9-150600.3.18.13.12.9-150600.3.18.1
openSUSE:Leap 15.6python312-documentationдо 3.12.8-150600.3.12.13.12.8-150600.3.12.1
openSUSE:Leap 15.6python312-documentationдо 3.12.9-150600.3.18.13.12.9-150600.3.18.1
openSUSE:Tumbleweedpython-aiohttpдо 3.11.16-1.13.11.16-1.1

+49

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2026-115557Distrust compromised intermediate certificates in ssl module
    37Наблюдать
  • CVE-2025-4517Arbitrary writes via tarfile realpath overflow
    37Наблюдать
  • CVE-2026-19445Use-after-free of a server-side SSLContext when sni_callback switches contexts
    36Наблюдать

Опубликованы до и после этой записи в том же продукте

  • ← РаньшеCVE-2024-808822 авг. 2024 г. · Infinite loop when iterating over zip archive entry names from zipfile.Path
    34Наблюдать
  • ← РаньшеCVE-2024-1116812 нояб. 2024 г. · Improper validation of IPv6 and IPvFuture addresses
    25Наблюдать
  • Позже →CVE-2025-093831 янв. 2025 г. · URL parser allowed square brackets in domain names
    25Наблюдать

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Python Software Foundation CPython3.12.9Вендор (CNA)
Python Software Foundation CPython3.13.2Вендор (CNA)
Python Software Foundation CPython3.14.0a3Вендор (CNA)
azl3 python3 3.12.3-5 on Azure Linux 3.03.12.3-5 · CBL-Mariner ReleasesMicrosoft (MSRC)
almalinux:python3.123.12.5-2.el9_5.2 · AlmaLinux:9Реестр пакетов (OSV)
almalinux:python3.12-debug3.12.5-2.el9_5.2 · AlmaLinux:9Реестр пакетов (OSV)
almalinux:python3.12-devel3.12.5-2.el9_5.2 · AlmaLinux:9Реестр пакетов (OSV)
almalinux:python3.12-idle3.12.5-2.el9_5.2 · AlmaLinux:9Реестр пакетов (OSV)
almalinux:python3.12-libs3.12.5-2.el9_5.2 · AlmaLinux:9Реестр пакетов (OSV)
almalinux:python3.12-rpm-macros3.12.8-1.el8_10 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:python3.12-test3.12.5-2.el9_5.2 · AlmaLinux:9Реестр пакетов (OSV)
almalinux:python3.12-tkinter3.12.5-2.el9_5.2 · AlmaLinux:9Реестр пакетов (OSV)
alpine:python33.12.8-r1 · Alpine:v3.20Реестр пакетов (OSV)
debian:python3.133.13.1-2 · Debian:13Реестр пакетов (OSV)
opensuse:python-aiohttp3.11.16-1.1 · openSUSE:TumbleweedРеестр пакетов (OSV)
opensuse:python3123.12.8-150600.3.12.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:python312-core3.12.8-150600.3.12.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:python312-documentation3.12.8-150600.3.12.1 · openSUSE:Leap 15.6Реестр пакетов (OSV)
opensuse:python3133.13.1-1.1 · openSUSE:TumbleweedРеестр пакетов (OSV)
red hat:python-unversioned-command0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python30:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3-debug0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3-devel0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3-idle0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3-libs0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3-test0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3-tkinter0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3.120:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3.12-debuginfo0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)
red hat:python3.12-debugsource0:3.12.9-1.el10 · Red Hat:enterprise_linux:10.0Реестр пакетов (OSV)

+6

Статус эксплойта

Публичный эксплойт неизвестен

Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

Кроме публикации датированных событий нет.

Истории пока нет (накапливается ежедневным заданием EPSS).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана любым, у кого есть доступ через интернет.
  • Учётная запись или пароль не требуются.
  • Действия пользователя не требуются.
  • Особые условия не требуются; воспроизводится стабильно.

В случае успеха

Конфиденциальность
Целостность
Доступность
Вектор атаки
Сеть
Сложность атаки
Низкая
Требуемые привилегии
Не требуются
Взаимодействие с пользователем
Не требуется
Область действия
X

Класс уязвимости (CWE)

CWE-400 · Uncontrolled Resource Consumption

Вектор CVSS

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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

nvd-secondary

Первопричина

Код, разбирающий вложенные структуры, не ограничивает глубину или размер. Небольшие входные данные могут привести к несоразмерной вычислительной нагрузке.

Ошибка в коде

Весь класс CWE-400

Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.

Уязвимый код

ts
function expand(node) {  return node.children.map(expand);}

Исправленный код

ts
const MAX_DEPTH = 32;function expand(node, depth = 0) {  if (depth > MAX_DEPTH) throw new Error("слишком глубоко");  return node.children.map((c) => expand(c, depth + 1));}

Контекст атаки

Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Все записи