Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

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

30.10.2026 08:36 (MSK)

Компания 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).

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP из состава ядра Linux
  3. OpenNews: 19 удалённо эксплуатируемых уязвимостей в TCP/IP-стеке Treck
  4. OpenNews: Уязвимости в TCP-стеках Linux и FreeBSD, приводящие к удалённому отказу в обслуживании
  5. OpenNews: Уязвимость в IPv6-стеке ядра Linux, допускающая удалённое выполнение кода
  6. OpenNews: PwnEscape - уязвимость в сетевом стеке ядра Linux, позволяющая обойти изоляцию гипервизоров и контейнеров
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66575-tcp
Ключевые слова: tcp, linux, rce, security
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Илья (??), 08:59, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/–
    Интересно, как будут рекламировать нейронки, когда они найдут все подобные уязвимости и упрутся
     
     
  • 2.6, Аноним (6), 09:16, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/–
    > когда они найдут все подобные уязвимости

    Сишного код на 100 лет написано.
    Плюс всегда будут луddиты, которые будут писать код без проверок, фаззинга, анализа нейронками.

    > упрутся

    Будут создаваться более специализированные нейронки, которые будут искать проблемы в коде, который пишут обычные.

     
  • 2.21, Аноним (21), 09:54, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну это уже вообще невесело. Это не какой-то там LPE.
     
  • 2.24, Аноним (24), 09:56, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Возможно так:

    Ваша нейронка не осиливает искать дырени в СИ коде?
    Просто перепишите его на раст!
    Наш новый РастоПереписыватель3000 позволит сделать это за пару недель!*
    С минимальным потреблением токенов! Вам хватит токенов включенных в вашу подписку**

    * для сферического хеллоуворлда из палаты мер и весов
    ** при покупке тарифного плана Pro Ultra Mega.

     
  • 2.26, Alladin (?), 10:01, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    - нейронка создает
    - нейронка находит
    - все ААА!!

    проверенный путь

     

  • 1.2, Аноним (2), 08:59, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/–
    Ну хоть кто-то находит все эти закладки, но представьте только, сколько новых спрячет.
     
     
  • 2.15, Аноним (15), 09:32, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ты прям иллюстрация анекдота про слепую девочку и миску пельменей.

    Кто спрячет? ИИшка или пограммист?
    Если пограммист - то он или бракодел (и тут ИИшка может его попытаться остановить) или намеренный вредитель.
    Во втором случае ты с ним ну никак бороться не сможешь, кроме как делать тщательное ревью (с привлечением той же ИИшки).

     
     
  • 3.18, Аноним (2), 09:43, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Ты никогда не узнаешь, каким именно образом модифицированы веса модели, предоставленные для доступа.
     
     
  • 4.29, Аноним (29), 10:05, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Всегда можно писать одной нейронкой, а проверять другой.
    Например американская + китайская)

    Да и Сообщество™ могло бы поучаствовать и выпустить локальные нейронки, заточенные под поиск типичных уязвимостей.
    Благо сет для обучения лежит вот прям в открытом доступе - сам код ядра + список найденных CVE.

     
  • 4.35, уп (?), 10:10, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Поэтому только открытые веса и модели, твой кэп.
     
  • 2.17, опеншлёпивпродакшн (?), 09:41, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Придётся стать умнее :)
     
  • 2.38, Аноним (38), 10:16, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну хоть кто-то кроме меня называет вещи своими именами, закладка она и есть закладка но многие упорно продолжают использовать определение "уязвимость".
     
     
  • 3.39, Аноним (39), 10:18, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А что - закладка не уязвимость? Вот обратное не всегда верно.
     

  • 1.3, Аноним (3), 09:04, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Похоже, что применение ИИ для поиска уязвимостей встряхнет интернет основательно.
     
     
  • 2.14, Аноним (14), 09:29, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    И заканает админов постоянным требованием обновить ядро в ночи ибо прод работает днем
     
     
  • 3.19, Аноним (19), 09:44, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Вот только еще и обновить возможно далеко не всегда и не везде. Где-то могут быть модули специфичные, которые не собираются с ядром новее, а где-то т.н. ембеддед устройства на которых давно болт от производителей и разрабов прошивок лежит. В первом случае еще что-то можно сделать, во втором уже ничего
     

  • 1.4, Аноним (4), 09:13, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/–
    > Заявлено о создании рабочего эксплоита, позволяющего выполнить код на уровне ядра и удалённо получить права root в системе.

    Что ж они не вылажили его "случайно" в общий доступ, на радость скрипткидди и какерам?

    > Уязвимость вызвана состоянием гонки [и приводит к] (use-after-free).

    Хаха, классик (с)

    > Проблема проявляется начиная с ядра Linux 4.4

    Где вы были 10 лет, тысячи глаз?

     
     
  • 2.7, Аноним (2), 09:16, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Так кто будет искать, если никто не использует? Большинство уязвимостей обнаруживается в таком вот мёртвом коде.
     
     
  • 3.9, Аноним (4), 09:20, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Что значит "в мертвом коде"?
    С чего ты взял "никто не использует"?

    Если "эксплоит может быть применён при использовании любых серверных приложений на языке Go, включая HTTP-сервер Caddy" - то этот код нифига не мертвый, а весьма активно используемый.

    ps мертвый код должен из проекта выпиливаться, но к сожалению плюшкинизм среди красноглазиков это почти норма

     
     
  • 4.12, Аноним (2), 09:24, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Ну с год назад начали использовать где-то. Для начала выясни, в ведре то включено? Обычно это всегда надо специально включать.
     
     
  • 5.32, Аноним (29), 10:07, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ты наверное не правильно понял эту фразу

    "Поддержка MPTCP может быть активирована в привязке к отдельным сетевым сокетам, что делается по умолчанию в стандартной библиотеке языка Go, начиная с версии Go 1.24 (февраль 2025 года)"

    Возможно есть другие библиотеки-сервисы-приложения которые "включают MPTCP".
    Но так как их дофига, то проверяйте уязвимость своих систем сами.

     
  • 3.27, Alladin (?), 10:02, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    никогда бы не подумал что стек ipv4 можно назвать мертвым:)
     
  • 2.11, Аноним (11), 09:24, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    В этих тысячах и ваши были, почему не нашли?
     
     
  • 3.13, Аноним (-), 09:29, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Кто? я?! (с)

    А если без шуток то я в ядре не колупаюсь, тк мне это не очень интересно.
    Зато разрекламированные тыщиглаз и преимущества отрытого кода по какой-то странной причине разбиваются о реальность.

     
     
  • 4.23, Diozan (ok), 09:55, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Вот потому и нашли уязвимость, что лично Вы в ядре не копались. Ребяты, я нашёл, кто виноват! Ату его!
     
  • 2.22, llolik (ok), 09:55, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    > Где вы были 10 лет, тысячи глаз?

    Гонки (race conditions) без автоматизированного тестирования, т.е. глазами, поймать в принципе достаточно нетривиально. Только если самые банальные, или если наткнуться на её проявление в формате "всё развалилось нафиг, что тут происходит".

    Нейронка, в этом плане, хороша тем, что у неё мозги железные (т.е. не устаёт) и большой контекст (т.е. в фокусе внимания она может держать побольше, чем среднестатистический кожаный) - она может "бомбардировать" код условиями разной степени упоротости до момента "пока электричество не отключат" и обнаружить условие, когда что-то пошло не так, даже если этот момент сильно нетривиален и натыкались на него, в лучшем случае, один из миллиарда пользователей (да и тот не понял, что произошло).

     
     
  • 3.37, Аноним (37), 10:11, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Гонки (race conditions) без автоматизированного тестирования, т.е. глазами, поймать в принципе достаточно нетривиально.

    Т.е во-первых, кто-то поленился написать тесты)

    Во-вторых есть локи, семафоры (к сожалению СИ тут не может похвастаться обилием инструментов, в отличии от других языков).

    В третих, гонка приводит к use-after-free.
    А вот уже use-after-free приводит к лаже.

     
  • 2.30, пох.. (?), 10:06, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Что ж они не вылажили его "случайно" в общий доступ, на радость скрипткидди и какерам?

    так у них ЫЫ этим занимается, он не перепутает рассылки, он железный.

     

  • 1.16, Агл (ok), 09:33, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    уязвимость в TCP стеке ядра Linux, но в том же абзаце упоминается и Go. И советы только по софту на Go. Значит о другом ПО, принимающем соединения, можно не беспокоится? Или по каждому смотреть, умеет ли оно в это MPTCP, включено ли оно по-умолчанию, в какой версии и тд?
     
     
  • 2.20, Аноним (24), 09:53, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    ИМХО будет как с пред уязвимостями:
    нашли в связке с ГОшкой,
    потом все спецы ломанулись просматривать этот файл и соседние,
    наколупали еще 100500 вариантов похожей ошибки.

    Буду рад если ошибаюсь)

     
  • 2.25, Энтомолог_русолог (ok), 10:01, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Для эксплуатации уязвимости нужно настроить использование MPTCP на сервере и установить на него Caddy. После этого ты сможешь воспользоваться уязвимостью и получить на сервере рута… Постой! У тебя же уже есть на нем рут которым ты настраивал MPTCP и ставил Caddy

    И вот так всегда

     
  • 2.34, пох.. (?), 10:10, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > И советы только по софту на Go.

    потому что только игогошники додумались без спросу использовать новую модную ненужно.

    Подозреваю что это одни и те же ребята - те что натяпляпали, и те что наразрабатывали игого. И оба один работает в гугле.

    > Или по каждому смотреть, умеет ли оно в это MPTCP

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

     

  • 1.28, оловерды (?), 10:04, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    можно так:
    iptables -I INPUT 2 -p tcp \
      -m u32 --u32 '0>>22&0x3C=0x18:0x3C' \
      -j DROP
     
     
  • 2.31, пох.. (?), 10:07, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    теперь все соединения инициируемые твоим сервером из под кровати - непонятно почему виснут.

     
     
  • 3.36, оловерды (?), 10:11, 30/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    вчитайся.
    32 матч говорит фактически: если это TCP и длина IPv4-заголовка 24–60 байт, DROP.
     

  • 1.40, Аноним (40), 10:21, 30/10/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/–
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: