[ON] Удалённо эксплуатируемая уязвимость в TCP-стеке ядра Linux

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6000
ОС: gnu/linux

[ON] Удалённо эксплуатируемая уязвимость в TCP-стеке ядра Linux

Сообщение rssbot »

Компания Anthropic раскрыла информацию о критической уязвимости (CVE-2026-98432) в TCP-стеке ядра Linux, допускающей удалённое выполнение кода через отправку специально оформленных пакетов. Заявлено о создании рабочего эксплоита, позволяющего выполнить код на уровне ядра и удалённо получить права root в системе. Подготовленный эксплоит пригоден для атаки на системы с серверными процессами, принимающими соединения через сетевые сокеты, поддерживающие использование расширения MPTCP (Multipath TCP). Поддержка MPTCP может быть активирована в привязке к отдельным сетевым сокетам, что делается по умолчанию в стандартной библиотеке языка Go, начиная с версии Go 1.24 (февраль 2025 года).


Подготовленный эксплоит может быть применён при использовании любых серверных приложений на языке Go, включая HTTP-сервер Caddy, при наличии возможности отправки сетевых пакетов на создаваемый ими слушающий сокет. Так как уязвимость присутствует непосредственно в TCP-стеке и не специфична для MPTCP, не исключается создание эксплоитов, работающих без привязки к MPTCP, но подобные эксплоиты пока не продемонстрированы. Например, возможна эксплуатация уязвимости при обработке запросов миграции сокетов, доступная в конфигурациях с параметром net.ipv4.tcp_migrate_req=1 или при использовании eBPF-программ с опцией BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.


Уязвимость вызвана состоянием гонки, возникающим при одновременной обработке повторно переданных SYN-запросов при установке TCP-соединения. Так как функция tcp_v4_syn_recv_sock() передаёт дочернему сокету параметры из структуры ireq->ireq_opt через ссылку, а не через копирование, при определённом стечении обстоятельств возникает ситуация, когда память под структуры inet_opt и ireq_opt с параметрами сокета уже освобождена, но связанные с ней опции сокета продолжают использоваться (use-after-free).


Удалённая эксплуатация осуществляется через отправку серии синхронизированных во времени сетевых запросов. Созданный эксплоит успешно применим в том числе к ядрам, в которых используется рандомизация адресов (KASLR), но попадание в окно состояния гонки занимает достаточно много времени и требует большого числа повторных попыток. Эксплуатацию упрощает то, что не попадание в окно состояния гонки приводит лишь к сбросу сеанса установки соединения (handshake), а не краху ядра, что даёт возможность бесконечно продолжать попытки. В созданном прототипе эксплоита на проведение атаки потребовалось около часа - 48 минут на определение раскладки памяти и ещё 5 минут на организацию выполнения кода.


Гарантированно блокирующие уязвимость обходные пути защиты пока не представлены - как единственный надёжный вариант предлагается установить обновление ядра. Проблема проявляется начиная с ядра Linux 4.4 и устранена в выпусках 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 и 7.3. Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora.


Из рекомендаций по противодействию конкретным методам эксплуатации, не блокирующих уязвимость в общем виде, можно отметить отключение поддержки MPTCP и выставление sysctl-параметра ядра net.ipv4.tcp_migrate_req в значение 0:

Код:

sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0
Для определения наличия в системе процессов, использующих сокеты с
MPTCP, можно использовать команды:

Код:

ip mptcp endpoint show
ip mptcp limits show
ss -Mlnp

Для отключения поддержки MPTCP в программах на языке Go, следует использовать флаг "multipathtcp=0", для выставления которого можно установить переменную окружения "GODEBUG=multipathtcp=0". Для отключения поддержки MPTCP на этапе сборки можно добавить "godebug multipathtcp=0" в файл с модулем go.mod. В коде приложения использование MPTCP можно отключить через функции net.Dialer.SetMultipathTCP и net.ListenConfig.SetMultipathTCP.


Помимо рассмотренной проблемы компания Anthropic также анонсировала серию локально эксплуатируемых уязвимостей в ядре Linux, OpenBSD и FreeBSD, позволяющих получить права root в системе и выйти из изолированных контейнеров; уязвимости в Chrome и Safari, приводящие к выполнению кода в системе при открытии специально оформленных web-страниц; уязвимость в ядре Windows, приводящая к аварийному завершению работы; уязвимость в платформе Android, позволяющая обойти блокировку экрана и получить доступ к персональной информации и фотографиям без разблокировки устройства (атака продемонстрирована на смартфоне Google Pixel 9).


Дополнение 1:
  • В nginx возможность активации опции IPPROTO_MPTCP для слушающего сетевого сокета присутствует начиная с версии 1.29.7, но не применяется по умолчанию.
  • В Lighttpd опция для включения MPTCP доступна начиная с выпуска 1.4.76.
  • В Apache httpd патчи для поддержки MPTCP были добавлены в ветку Apache httpd 2.5-HEAD в 2024 году.
  • В systemd поддержка включения MPTCP при активации по сокету добавлена в версии 257.
  • В Apache Traffic Server опция для включения MPTCP поддерживается начиная с версии 9.2.4.
  • В HAProxy начиная с версии 3.1.0 доступна опция "mptcp{,4,6}@‹address›".
  • В Traefik выставление флага IPPROTO_MPTCP включено по умолчанию начиная с выпусков 2.11.26, 3.4.2 и v3.5.0-rc1.
  • В СУБД Valkey начиная с версии 9.0.0 доступна опция "--mptcp" и настройки "mptcp yes" и "repl-mptcp yes".



Дополнение 2: На днях доступны исправления для ещё 16 уязвимостей в ядре Linux, которые потенциально могут быть эксплуатированы удалённо и имеют высокий уровень опасности:
  • CVE-2026-98490 - обращение к памяти после её освобождения в коде отслеживания состояния соединений в подсистеме openvswitch. Проблеме присвоен уровень опасности 9.8 из 10. Не исключается удалённое выполнение кода.
  • CVE-2026-98548 - обращение к памяти после её освобождения в реализации протокола SCTP из-за отбрасывания хвоста пакета при возникновении ошибки из-за передачи устаревшего cookie. Проблеме присвоен уровень опасности 9.8 из 10. Не исключается удалённое выполнение кода.
  • CVE-2026-98959 - повреждение памяти в коде btrfs при упаковке нескольких расширенных атрибутов (xattr) в один элемент. Проблеме присвоен уровень опасности 9.8 из 10. Не исключается выполнение кода при обработке специально оформленных образов ФС.
  • CVE-2026-99078, CVE-2026-99079 - обращение к уже освобождённой памяти в сетевом драйвере mlx5e из-за использования устаревшего буфера XSK при повторной попытке заполнения элементов WQE и MPWQE (Multi Packet Work Queue Element). Проблеме присвоен уровень опасности 9.8 из 10. Не исключается удалённое выполнение кода.
  • CVE-2026-98549 - чтение из обрасти вне границы очереди повторной передачи (rtx queue) в протоколе TCP из-за некорректного объединения структур sk_buff. Проблеме присвоен уровень опасности 9.1 из 10. Возможны удалённая утечка данных или отказ в обслуживании.
  • CVE-2026-98374 - обращение к памяти после её освобождения в TCP-стеке из-за некорректного использования потерявшего актуальность указателя retransmit_skb_hint в функции tcp_send_synack(). Проблеме присвоен уровень опасности 8.8 из 10. Не исключается удалённое выполнение кода.
  • CVE-2026-98451 - утечка содержимого памяти ядра через манипуляции с открытием символических ссылок с флагом O_CREAT в SMB-клиенте. Проблеме присвоен уровень опасности 8.8 из 10.
  • CVE-2026-98870 - обращение к памяти после её сопровождения в ksmbd. Проблеме присвоен уровень опасности 8.8 из 10. Для атаки требуется наличие доступа к SMB-серверу. Не исключается удалённое выполнение кода.
  • CVE-2026-99083 - запись за пределы буфера в функции krb5_authenticate() в ksmbd. Проблеме присвоен уровень опасности 8.8 из 10. Для атаки требуется наличие доступа к SMB-серверу. Не исключается удалённое выполнение кода.
  • CVE-2026-98405 - переполнение буфера в SMB-клиенте из-за отсутствия должной проверки значений iov в функции parse_posix_sids(). Проблеме присвоен уровень опасности 8.1 из 10. Возможны удалённая утечка содержимого памяти ядра или отказ в обслуживании.
  • CVE-2026-98454 - чтения из области вне буфера в SMB-клиенте. Проблеме присвоен уровень опасности 8.1 из 10. Возможны удалённая утечка содержимого памяти ядра или отказ в обслуживании.
  • CVE-2026-98532 - обращение к памяти после её освобождения в стеке IPv6 из-за возврата функцией ipv6_find_hdr() некорректного смещения на данные в пакете IPv6. Проблеме присвоен уровень опасности 8.1 из 10. Не исключается удалённое выполнение кода.
  • CVE-2026-98968 - обращение к памяти после её освобождения в реализации протокола AMT. Проблеме присвоен уровень опасности 8.1 из 10. Не исключается удалённое выполнение кода.
  • CVE-2026-99064 - переполнение буфера в реализации механизма
    CIPSO (Commercial Internet Protocol Security Option) из-за некорректного обновления прокэшированных смещений IP-опций во время удаления атрибута CIPSO из сетевого пакета. Проблеме присвоен уровень опасности 8.1 из 10. Не исключается удалённое выполнение кода.


Источник: https://www.opennet.ru/opennews/art.shtml?num=66575
(opennet.ru, основная лента)
Последний раз редактировалось rssbot 30.10.2026 22:43, всего редактировалось 7 раз.
Причина: Updated upstream
Спасибо сказали: