Ядро Linux: критическая уязвимость CVE-2026-98432 в IPv4 TCP, у Ubuntu и RHEL пока нет патча

Стабильные ветки ядра Linux 11 и 15 октября 2026 года получили исправление для CVE-2026-98432, уязвимости типа use-after-free (обращение к уже освобождённой памяти) в обработке TCP-рукопожатия по IPv4. До неё может добраться удалённый неаутентифицированный узел. Собственный орган нумерации CVE ядра (CNA) оценил её в CVSS 3.1 9.8 (Critical). Исправлены версии 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 и 7.3; ошибка присутствует начиная с Linux 4.4. Об этом пишет разбор на сайте Atlas (atlasum.net).
Проблема в том, что большинство серверов работает на ядрах дистрибутивов. По состоянию на 17:15 CDT 31 октября трекер Ubuntu по-прежнему помечает ядро как «Vulnerable» во всех релизах (для 26.10, 26.04, 24.04 и 22.04 добавлено «work in progress»), бюллетеня Ubuntu Security Notice нет. Red Hat с 30 октября оценивает ошибку как Critical (9.8), повысив рейтинг с Important (8.1); RHEL 8, 9 и 10 и OpenShift Container Platform 4 и 5 числятся уязвимыми без исправления, RHEL 6 и 7 не затронуты.
Механизм. Когда сервер принимает TCP-соединение, ядро отслеживает полуоткрытое рукопожатие в лёгком «request socket», а после завершения рукопожатия создаёт полноценный сокет. Если в IPv4-заголовке подключающегося узла были опции, ядро сохраняет их, чтобы повторять в ответах. Ошибка: ядро передавало сохранённые опции новому соединению без копирования и сразу освобождало их при закрытии соединения, тогда как другой процессор мог всё ещё читать их для формирования ответа рукопожатия. Всё это происходит внутри ядра до выполнения какого-либо кода приложения, без логина. По описанию CNA, устаревшие данные могут утечь из кучи ядра обратно узлу, увести запись ядра за границы или обрушить машину.
Исправление. Коммит Эрика Думазета «ipv4: free inet_opt and ireq_opt after an RCU grace period» заменяет два обычных вызова kfree() на kfree_rcu(), который освобождает память только после того, как все читатели закончили с ней работать. Тот же дефект исправлен в миграции request-сокетов (net.ipv4.tcp_migrate_req=1 или BPF-программа BPF_SK_REUSEPORT_SELECT_OR_MIGRATE). Родственный случай для IPv6 вынесен в отдельный патч; основная проблема IPv6 не затрагивает.
Роль Anthropic. Исследователь Anthropic сообщил об ошибке, и компания заявляет, что её модель Claude «после первоначальной подсказки» написала рабочий эксплойт (proof of concept), выполняющий произвольные команды от root без учётных данных и без участия пользователя на «Linux-серверах со слушателем multipath TCP» (MPTCP). По словам Anthropic, проигранная гонка лишь срывает рукопожатие, не роняя систему, поэтому настойчивый атакующий может повторять попытки до успеха. В демонстрации на утечку указателя ядра уходит 48 минут и ещё пять минут, на запуск команды оболочки. Эксплойт Anthropic не публиковала. Почему важен именно MPTCP-слушатель, компания не объясняла, а в записи CVE MPTCP не упомянут. Go-программы с версии Go 1.24 по умолчанию включают MPTCP для слушающих сокетов на Linux (если ядро это разрешает; AlmaLinux поставляет ядро с выключенным MPTCP). Команда безопасности Go при этом предупреждает, что ошибка не специфична для MPTCP и системы без MPTCP-слушателей тоже могут быть уязвимы.
Состояние дистрибутивов на 17:15 CDT 31 октября. Debian: исправлены 12 «bookworm», 13 «trixie» и unstable. SUSE: оценка important; исправлены SLES 16.0 и ядра 15 SP4, SP5, SP6 LTSS, 15 SP7 в работе, исправлен openSUSE Leap 16.0, а Leap 15.6 числится уязвимым. Oracle Linux: Important, 8.1, errata для ядер UEK вышли 16 октября. Amazon Linux: Important, 8.1, все ядра исправлены (Amazon Linux 2 и 2023, errata 24-30 октября). AlmaLinux: исправленные ядра для 8, 9 и 10 в тестовом репозитории с 30 октября, в продуктивный репозиторий пока не перенесены.
Если обновить ядро нельзя. Red Hat и AlmaLinux опубликовали правила nftables, отбрасывающие входящие IPv4 TCP-пакеты с опциями IP; Atlas рекомендует то же правило как временную меру (условие ip hdrlength gt 5). Red Hat подчёркивает, что правило «снижает риск, но не может полностью предотвратить» уязвимость. Для iptables Atlas приводит эквивалент в таблице raw с модулем xt_u32. Дополнительно советуют отключить MPTCP, если он не нужен, и не выставлять MPTCP-слушатели в интернет.
Ключевые факты
- CVE-2026-98432, use-after-free в обработке IPv4 TCP-рукопожатия в ядре Linux, достижимый удалённо без аутентификации; CNA ядра оценил его в CVSS 3.1 9.8 (Critical), ошибка присутствует с Linux 4.4.
- Апстрим исправил её 11 и 15 октября 2026 года (5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10, 7.3), правка, четыре строки; на 17:15 CDT 31 октября исправления нет у Ubuntu и RHEL 8, 9, 10.
- Anthropic сообщает, что её модель Claude написала рабочий эксплойт с выполнением команд от root для серверов с MPTCP-слушателем (48 минут на утечку указателя ядра плюс пять минут до оболочки); эксплойт не опубликован.
- Go с версии 1.24 по умолчанию открывает MPTCP-слушатели на Linux, а команда безопасности Go предупреждает, что ошибка не специфична для MPTCP.
- Временная мера, правило nftables, отбрасывающее входящие TCP-пакеты с опциями IPv4; оно не чинит ядро, и после установки исправленного ядра нужна перезагрузка.
Почему это важно
Ошибка находится в коде, который выполняет любой Linux-сервер при приёме IPv4 TCP-соединения, ещё до того как соединение увидит приложение. Для неё не нужны учётные данные, а CNA ядра дал максимальную для такого класса оценку 9.8. Вторая причина, разрыв во времени: апстрим исправил ошибку 11 и 15 октября, но к вечеру 31 октября у Ubuntu и RHEL патча всё ещё нет. Отдельная новость, заявление Anthropic, что модель Claude написала рабочий эксплойт; это подкрепляет оценку серьёзности, но сам эксплойт не опубликован.
Кому это важно
Администраторам любых Linux-серверов на ядре с версии 4.4 без исправления: веб-серверы, SSH, базы данных, балансировщики, узлы Kubernetes. Хостам с MPTCP-слушателями, в первую очередь, потому что именно такая конфигурация нужна эксплойту Anthropic; такие слушатели по умолчанию открывают Go-программы с Go 1.24 (если ядро разрешает MPTCP). Владельцам контейнерных хостов: контейнер работает на ядре хоста, поэтому новый образ ничего не меняет. Пользователям Ubuntu и RHEL 8, 9, 10, где исправления ещё нет; RHEL 6 и 7 не затронуты, IPv6-соединения основной проблемой не затронуты.
Как это применить
- Сверьтесь с трекером своего дистрибутива, а не с номером апстрим-ядра: дистрибутивы переносят исправления под собственными версиями. Проверять нужно на хосте, а не внутри контейнера. 2. Установите исправленное ядро и обязательно перезагрузитесь: обновление ядра не действует до загрузки в него; то же касается узлов Kubernetes. Исправление уже есть у Debian, SUSE (кроме перечисленных исключений), Oracle UEK и Amazon Linux; у AlmaLinux, в тестовом репозитории. 3. Команда ss -M показывает только MPTCP-сокеты: пустой вывод означает отсутствие MPTCP-слушателей. 4. Если патча ещё нет, примените правило nftables, отбрасывающее входящие IPv4 TCP-пакеты с опциями (ip hdrlength gt 5), либо сделайте то же на граничном межсетевом экране. Оно действует до перезагрузки; удаляется командой nft delete table ip cve_2026_98432. 5. Отключите MPTCP, если он не нужен (в том числе в контейнерах, например флагом Docker --sysctl net.mptcp.enabled=0), и не выставляйте MPTCP-слушатели в интернет.
Можно ли доверять
Первоисточник фактов об ошибке, запись CNA ядра и коммит апстрима, статус дистрибутивов пересказан по их трекерам и бюллетеням на 17:15 CDT 31 октября и быстро устаревает. Утверждения об эксплойте принадлежат самой Anthropic, исследователь которой сообщил об ошибке; эксплойт не опубликован, независимо проверить его нельзя. Разбор опубликован на сайте Atlas, который сам проверял команды и правила в контейнерах Debian 12 и Rocky Linux 9, но не проверял правила фильтрации против реального эксплойта. Доступный текст материала обрывается на разделе о хронологии, поэтому срок раскрытия уязвимости (в тексте упомянута политика Anthropic о 90 днях) и датированная хронология неизвестны.
Риски и подводные камни
Правило nftables не исправляет ядро: Red Hat прямо пишет, что оно снижает риск, но не может полностью предотвратить уязвимость. AlmaLinux предупреждает, что трафик между контейнерами на одном хосте может его обходить (Atlas воспроизвёл это на мостовом соединении), и что правило нельзя применять в сетях с метками безопасности CIPSO, которые передаются в опциях IPv4. Аналог для iptables требует модуля xt_u32, которого нет в ядрах RHEL 9 и 10 и их пересборках. Отключение MPTCP убирает условия для эксплойта Anthropic, но не саму ошибку, а команда безопасности Go называет отключение MPTCP отдельно для каждой программы «хрупкой мерой». Настройка net.mptcp.enabled действует на уровне сетевого пространства имён, и новые контейнеры начинают с включённым MPTCP. Не забывайте перезагрузку после обновления ядра, иначе защиты нет. Даты исправлений Ubuntu и RHEL в материале не названы.
«Лежащая в основе ошибка не специфична для MPTCP. Возможно, системы без MPTCP-слушателей уязвимы для похожих атак.»
— Команда безопасности Go (Go Security Team), цит. по разбору Atlas