CVE: CVE-2026-74586
Продукт: Linux Kernel
Дата публикации: 22.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,50%; процентиль 40,64%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В ядре Linux обнаружена уязвимость use-after-free в модуле SCTP, позволяющая удалённому атакующему вызвать чтение освобождённой памяти. Проблема возникает при обработке ASCONF-сообщений и может привести к отказу в обслуживании или потенциальному повышению привилегий. Статья разбирает механику бага, условия эксплуатации и способы проверки исправления.
Основные характеристики
Уязвимость представляет собой чтение освобождённой памяти (use-after-free) в сетевом стеке Linux. Атакующий может инициировать её удалённо, не имея учётных данных, что делает риск высоким для систем, использующих SCTP.
- Тип ошибки: Use-after-free. Ядро обращается к памяти объекта
sctp_transportпосле его освобождения.
- CVSS 3.1: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Высокая оценка отражает сетевой доступ и отсутствие необходимости в аутентификации.
- Эксплуатация: Подтверждено воспроизведение бага с помощью KASAN. Публичный PoC существует, но массовая эксплуатация в реальных атаках не зафиксирована.
- EPSS: 0,50% (процентиль 40,64%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, но не нулевая.
- CISA KEV: Уязвимость не включена в каталог Known Exploited Vulnerabilities.
Какие продукты и версии затронуты
Уязвимость затрагивает ядра Linux, содержащие код обработки SCTP, введённый в коммите
6af29ccc223b ("sctp: Bundle HEAERTBEAT into ASCONF_ACK").- Версии ядра: Все версии, содержащие указанный коммит и не содержащие исправление
beb33f8ee1ca83acddb2a5ae80f3d22ec550b4c3.
- Модули: Подсистема SCTP (
net/sctp/associola.c,net/sctp/outqueue.c).
- Дистрибутивы: Конкретные версии пакетов для дистрибутивов (Debian, Ubuntu и др.) не указаны в предоставленных источниках. Рекомендуется проверять обновления в репозиториях конкретного дистрибутива.
Для определения текущей версии ядра используйте команды из раздела «Проверка версии».
Причина уязвимости
Причина бага кроется в некорректном управлении указателем
asoc->new_transport в функции sctp_assoc_rm_peer().Когда удалённый пир отправляет ASCONF-сообщение, ядро добавляет новый транспорт и сохраняет его указатель в
asoc->new_transport. Если в том же сообщении содержится параметр wildcard DEL-IP, ядро удаляет этот транспорт через sctp_assoc_del_nonprimary_peers(). Однако функция удаления не обнуляет asoc->new_transport, оставляя висячий указатель на освобождённую память.Позднее, при обработке ACK, функция
sctp_outq_select_transport() пытается прочитать состояние этого транспорта, что приводит к use-after-free. Исправление добавляет проверку и обнуление указателя при удалении пира.Как работает атака
Атакующий использует установленное SCTP-соединение для отправки специально сформированного ASCONF-сообщения. В этом сообщении он сначала добавляет новый транспорт, а затем удаляет его с помощью wildcard DEL-IP параметра.
Ядро обрабатывает параметры последовательно. После добавления транспорта указатель сохраняется в
asoc->new_transport. При удалении транспорта память освобождается, но указатель не сбрасывается. Когда ядро пытается отправить HEARTBEAT или обработать ACK, оно обращается к этому висячему указателю.Чтение освобождённой памяти может привести к:
- Сбою ядра (kernel panic) из-за невалидного доступа.
- Чтению случайных данных из памяти, что потенциально позволяет атакующему извлечь чувствительную информацию.
- В худшем случае — к исполнению кода, если атакующий сможет контролировать содержимое освобождённой области.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости атакующему необходимо:
- Доступ к сети: Возможность отправлять SCTP-пакеты на целевой хост.
- Установленное соединение: Наличие активного SCTP-ассоциации с целевой системой.
- Аутентификация: В описании упоминается «authenticated ASCONF», что подразумевает необходимость прохождения проверки подлинности SCTP (SCTP Authentication). Без этого параметра атакующий может не иметь доступа к отправке ASCONF.
- Специфичная последовательность: Точная последовательность параметров в ASCONF-сообщении, приводящая к освобождению памяти и последующему обращению к ней.
Возможный сценарий атаки
- Атакующий устанавливает SCTP-соединение с целевым хостом.
- Он отправляет ASCONF-сообщение, содержащее параметр добавления нового транспорта (ADD-IP) и параметр удаления (DEL-IP) с wildcard.
- Ядро добавляет транспорт, сохраняет указатель в
asoc->new_transport, затем удаляет транспорт и освобождает память.
- Указатель
asoc->new_transportостаётся валидным по значению, но указывает на освобождённую память.
- При обработке последующих пакетов (например, ACK) ядро обращается к этому указателю, вызывая use-after-free.
- Результат: сбой ядра или утечка данных.
Есть ли публичный эксплойт
Существует публичный PoC (Proof of Concept), описанный в коммите исправления. Автор уязвимости подтвердил, что PoC вызывает KASAN-отчёт в 2 из 2 запусков на ядре с включённым KASAN.
- PoC: Доступен в виде кода, воспроизводящего сценарий атаки.
- Эксплуатация: Массовая эксплуатация в реальных атаках не зафиксирована. Уязвимость не включена в CISA KEV.
- Риск: Несмотря на отсутствие подтверждённых атак, наличие PoC и высокая CVSS-оценка делают уязвимость приоритетной для патчинга.
Признаки эксплуатации
Специфичные IOC (Indicators of Compromise) для этой уязвимости не опубликованы. Однако можно отслеживать следующие неспецифичные признаки:
- KASAN-отчёты: В логах ядра (dmesg, journalctl) могут появляться сообщения
BUG: KASAN: slab-use-after-free in sctp_outq_select_transport.
- Сбои ядра: Неожиданные перезагрузки или panics, связанные с модулем SCTP.
- Сетевая активность: Аномальные ASCONF-сообщения с последовательностью ADD-IP и DEL-IP в одном пакете.
Эти признаки не являются уникальными для CVE-2026-74586 и могут возникать по другим причинам.
Как обнаружить атаку
Для обнаружения попытки эксплуатации или последствий уязвимости:
- Мониторинг логов ядра: Настройте сбор и анализ dmesg и journalctl на наличие KASAN-отчётов, связанных с
sctp_outq_select_transportилиsctp.
- Сетевой анализ: Используйте IDS/IPS для отслеживания аномальных SCTP-пакетов, особенно ASCONF с параметрами ADD-IP и DEL-IP.
- Мониторинг стабильности: Отслеживайте частые сбои или перезагрузки хостов, использующих SCTP.
- Аудит конфигурации: Проверьте, включена ли аутентификация SCTP на критических хостах.
Как проверить свою версию
Для проверки текущей версии ядра Linux используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Сравните полученную версию с информацией от вашего дистрибутива о том, какие версии содержат исправление
beb33f8ee1ca83acddb2a5ae80f3d22ec550b4c3. Если вы используете модульное ядро, убедитесь, что модуль SCTP обновлён.Исправление
Единственный надёжный способ устранения уязвимости — обновление ядра Linux до версии, содержащей исправление.
- Официальный патч: Коммит
beb33f8ee1ca83acddb2a5ae80f3d22ec550b4c3("sctp: clear new_transport when removing a peer").
- Обновление дистрибутива: Используйте штатные механизмы обновления вашего дистрибутива (apt, yum, dnf и т.д.).
- Пересборка ядра: Если вы собираете ядро самостоятельно, убедитесь, что в исходниках присутствует указанный коммит.
Не откладывайте обновление, так как уязвимость имеет критическую оценку CVSS и может быть эксплуатирована удалённо.
Временные меры защиты
Пока обновление не установлено, можно применить следующие временные меры:
- Отключение SCTP: Если ваш сервис не использует SCTP, отключите модуль
sctpв ядре или через sysctl.
- Ограничение доступа: Ограничьте доступ к портам SCTP (99) на уровне файрвола, разрешив соединения только от доверенных хостов.
- Включение аутентификации SCTP: Убедитесь, что SCTP Authentication включён, чтобы атакующий не мог отправлять ASCONF-сообщения без проверки подлинности.
Эти меры снижают, но не устраняют риск полностью.
Как проверить устранение уязвимости
После обновления ядра проверьте, что исправление применено:
- Проверка версии: Убедитесь, что версия ядра соответствует рекомендациям дистрибутива.
- Проверка коммита: Если вы используете исходники, проверьте наличие коммита
beb33f8ee1ca83acddb2a5ae80f3d22ec550b4c3в истории git.
- Функциональное тестирование: Проведите тестирование SCTP-соединений, чтобы убедиться, что они работают корректно.
- Мониторинг: Продолжайте отслеживать логи на наличие KASAN-отчётов, связанных с SCTP.
Вывод
CVE-2026-74586 — критическая уязвимость в модуле SCTP ядра Linux, позволяющая удалённому атакующему вызвать use-after-free. Несмотря на отсутствие подтверждённых массовых атак, наличие PoC и высокая CVSS-оценка делают обновление ядра приоритетной задачей. Администраторы должны проверить свои системы, применить патч и, при необходимости, временно ограничить доступ к SCTP.
Официальные источники
- NVD — CVE-2026-74586
- FIRST EPSS — CVE-2026-74586
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
- sctp: clear new_transport when removing a peer - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 27.08.2026 — Опубликована первая версия материала.
