Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

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

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 2561
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 60 раз
Поблагодарили: 28 раз

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

Сообщение root:# »

Удалённо эксплуатируемая уязвимость в TCP-стеке ядра Linux
Компания Anthropic раскрыла информацию о критической уязвимости (CVE-2026-98432) в TCP-стеке ядра 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, 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 Для отключения поддержки 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".

Источник: https://www.opennet.ru/opennews/art.shtml?num=66575