Одна лишняя «!» в коде ядра превратилась в уязвимость Linux высокой степени тяжести: непривилегированный пользователь или процесс может повысить права до root. Для администраторов, DevOps-инженеров и команд, которые привыкли считать песочницы и системные ограничения достаточным барьером, новость неприятная: ошибка живет в подсистеме nf_tables и годится не только для локальной эскалации, но и как звено в цепочке для обхода защит ОС.
Об этом сообщает Ars Technica. Речь идет об уязвимости, которую издание обозначает как CVE-2026-23111. Проблема находится в nf_tables, подсистеме ядра Linux для фильтрации пакетов и управления правилами файрвола. Именно она пришла на смену старым механизмам вроде iptables, ip6tables, arptables и ebtables, так что зона поражения здесь не экзотическая, а вполне массовая. Ирония ситуации в том, что причиной стала не сложная гонка и не редкий аппаратный эффект, а один неверно поставленный символ отрицания.
Технически это use-after-free, то есть ошибка, при которой код продолжает работать с объектом после освобождения памяти. В данном случае эксплуатация связана с обработкой verdicts в nf_tables, то есть решений о том, что делать с пакетом при совпадении с правилом. В этой логике используются так называемые catchall-элементы, срабатывающие как подстановка по умолчанию, если ни один другой элемент набора не подошел. При удалении verdict map такие catchall-элементы деактивируются, а счетчик ссылок цепочки уменьшается. Если операция откатывается из-за ошибки, счетчик должен быть увеличен обратно. Из-за неверного символа этот сценарий ломается: атакующий может уменьшать счетчик произвольное число раз, а затем добиться удаления и освобождения chain в момент, когда на нее еще ссылаются другие объекты.
На практике это означает вполне прикладную вещь: локальный пользователь без привилегий может получить root. Исследователи из Exodus Intelligence, которых цитирует Ars Technica, отдельно подчеркивают, что эксплойт не упирается в чистую теорию. По их данным, на Debian и Ubuntu удалось не только вызвать use-after-free, но и использовать его достаточно стабильно: цепочка эксплуатации несколько раз триггерит ошибку, чтобы утечь базовый адрес ядра, адреса в heap, а затем перехватить управление. Самая неприятная деталь для защитников в том, что на незагруженной системе стабильность, по данным исследователей, превысила 99%. Для класса атак, где многое обычно ломается на шуме памяти и таймингах, это очень высокий показатель.
Починили проблему еще в феврале, после чего исправление было перенесено в основные дистрибутивы Linux. Но типичный риск здесь не в том, что патча нет вообще, а в том, что его не везде поставили вовремя. В апреле компания FuzzingLabs уже показывала proof of concept, а теперь собственный PoC опубликовала и Exodus Intelligence. Это меняет статус истории: если раньше у администраторов был повод отложить обновление в папку «разберемся на следующем окне», то после появления нескольких демонстраций уязвимость Linux переходит в категорию вещей, которые лучше закрывать без философских дискуссий. Когда детали эксплуатации становятся публичными, разрыв между «исследовательским кейсом» и «рабочим инструментом для злоумышленника» обычно сокращается очень быстро.
Важно и то, где именно находится баг. nf_tables давно стал стандартным кирпичом сетевой политики в Linux-средах: от обычных серверов и VPS до контейнерных хостов и облачных инстансов. Поэтому речь не только о классическом bare metal, где у злоумышленника уже есть shell. Если в инфраструктуре есть другой баг, дающий выполнение кода внутри ограниченного процесса, контейнера или сервисной учетной записи, такая уязвимость Linux становится удобным вторым шагом. Сначала атакующий получает минимальную точку опоры, потом снимает системные ограничения и выходит в root. Именно поэтому Ars Technica отдельно напоминает: локальные баги повышения привилегий особенно опасны в связке с другими уязвимостями, потому что помогают обходить встроенные механизмы защиты.
Для бизнеса и продуктовых команд урок здесь довольно приземленный. Песочница, namespace, непривилегированный контейнер и ограничения service account сами по себе не равны полной изоляции, если под ними лежит уязвимое ядро. Для разработчиков это еще одно напоминание, что безопасность среды выполнения нельзя отделять от безопасности приложения. Для SRE и платформенных команд вывод еще проще: инвентаризация версий ядра, скорость установки backport-патчей и контроль реального состояния хостов важнее, чем красивые документы о defense in depth. Когда один ошибочный символ дает путь к root, спор о том, нужно ли срочно обновлять kernel-пакеты, выглядит уже не как инженерный баланс рисков, а как избыточный оптимизм.
История неприятна не только из-за конкретного бага, но и как маркер более широкой тенденции: Linux за последние недели получил сразу несколько сильных уязвимостей повышения привилегий, и это бьет по любимому отраслевому допущению, будто локальный доступ атакующего сам по себе уже означает «почти конец игры». На деле именно в этот момент начинается самая дорогая часть инцидента: переход от ограниченного выполнения к полному контролю над машиной. Подробности кейса и ссылки на исследовательские материалы собраны в публикации .