Anthropic은 커널 TCP 스택에서 심각한 취약점(CVE-2026-98432)을 발견했다고 발표했습니다. Linux, допускающей удалённое выполнение кода через отправку специально оформленных пакетов. Заявлено о создании рабочего эксплоита, позволяющего выполнить код на уровне ядра и удалённо получить права root в системе. Подготовленный эксплоит пригоден для атаки на системы с серверными процессами, принимающими соединения через сетевые сокеты, поддерживающие использование протокола MPTCP (Multipath TCP). Поддержка MPTCP может быть активирована в привязке к отдельным сетевым сокетам, что делается по умолчанию в стандартной библиотеке языка Go, начиная с версии Go 1.24 (февраль 2025 года).
Подготовленный эксплоит может быть применён при использовании любых серверных приложений на языке Go, включая HTTP-сервер Caddy, при наличии возможности отправки сетевых пакетов на создаваемый ими слушающий сокет. Так как уязвимость присутствует непосредственно в стеке IPv4 и не специфична для 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,
페도라.
Из рекомендаций по противодействию конкретным методам эксплуатации, не блокирующих уязвимость в общем виде, можно отметить отключение поддержки 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
Для отключения поддержки 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).
추가 :
- В 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».
출처 : opennet.ru
