OpenAI нашла в ядре Linux 948 уязвимостей, которые дают root непривилегированному пользователю
Автоматический конвейер на неопубликованной модели проверил около 7% кода ядра за 10 дней. Исправления уходят мейнтейнерам партиями, и в ближайшие месяцы обновлений ядра станет заметно больше.
4 ноября 2026 года OpenAI опубликовала отчёт «A thousand fewer paths to root». В середине октября прототип конвейера на ещё не выпущенной модели для задач кибербезопасности за 10 дней разобрал 2 308 подозрительных мест в ядре Linux, воспроизвёл 1 724 ошибки и написал рабочие эксплойты для 948 уникальных уязвимостей локального повышения привилегий (LPE). Каждая из них позволяет обычному пользователю без прав стать root. Цифры подтверждают SecurityWeek и Phoronix.
Конвейер просмотрел примерно 2,8 млн строк, то есть около 7% кода ядра. Прогон обошёлся в 1,21 млн долларов в API-кредитах, около 1 280 долларов за эксплойт. В выборке из 166 эксплойтов команда OpenAI и сторонние эксперты по эксплуатации ядра насчитали десять техник, которых раньше в публичных работах не встречали. Отдельно модель написала 21 эксплойт для усиленного стенда kernelCTF, на котором Google проверяет защиту ядра.
Что уже исправлено
Патчи-кандидаты конвейер готовил сам, но решение о каждом принимают мейнтейнеры. За 10 дней прогона 61 исправление попало в основную ветку ядра, ещё 43 ждали в staging-ветках, около 300 ошибок обсуждались в публичных рассылках. Остальное OpenAI передаёт поэтапно через программу Patch the Planet, чтобы не завалить разработчиков сотнями отчётов за один день. Это значит, что 948 — число найденных дыр, а не закрытых. Исправления будут приходить в стабильные ветки ещё несколько месяцев.
Ещё один фон — общий поток CVE ядра. С тех пор как проект ядра стал сам выпускать CVE, их число исчисляется тысячами в год, и LWN на этой неделе снова обсуждал, как с этим потоком справляться. Обновления, которые раньше можно было откладывать на квартал, теперь закрывают реальные пути к root.
Почему локальная уязвимость — это не «мелочь»
Все 948 ошибок локальные: атакующему сначала нужен любой непривилегированный доступ к системе. На практике такой доступ получить проще, чем кажется: взломанный веб-сервис, работающий от отдельного пользователя, процесс в контейнере, общий сервер для сборки, CI-раннер, который выполняет чужой код из merge request. В самом отчёте OpenAI это сформулировано прямо: учётная запись с низкими правами в системе без свежих патчей для подготовленного атакующего равнозначна root.
Контейнеры от этого не спасают: Docker и Kubernetes делят с хостом одно ядро, поэтому LPE в ядре — это и побег из контейнера. А ещё ядро Linux лежит в основе Android. Телефоны, на которые производитель перестал присылать патчи безопасности, ещё долго будут уязвимы к части этих ошибок. Для команды, которая разрабатывает мобильные приложения на заказ, это довод не доверять устройству клиента: хранить токены в аппаратном хранилище ключей, проверять целостность устройства через Play Integrity и повторять все важные проверки на сервере, а не в клиенте. Root на телефоне пользователя не должен давать доступ к чужим данным в API.
Что сделать администратору сейчас
- Обновляйте ядро чаще. Подпишитесь на рассылку безопасности своего дистрибутива и закладывайте окно на перезагрузку хотя бы раз в месяц. Там, где простой недопустим, подойдут live-патчи: kpatch, Canonical Livepatch, KernelCare.
- Держитесь LTS-ветки. По оценке Phoronix, ядро 7.3 скорее всего станет LTS-релизом этого года. Исправления сначала попадают в стабильные и LTS-ветки, а самосборные ядра остаются без них.
- Сократите число локальных пользователей. Выключите лишние учётные записи, не запускайте сервисы от root и закройте shell для сервисных аккаунтов.
- Уменьшите поверхность атаки ядра. Запретите непривилегированные user namespaces там, где они не нужны (
kernel.unprivileged_userns_clone=0илиuser.max_user_namespaces), отключите неиспользуемые модули через blacklist в/etc/modprobe.d/, оставьте в контейнерах профиль seccomp по умолчанию. - Изолируйте CI. Чужой код из форков запускайте в одноразовых виртуальных машинах, а не в контейнерах на общем хосте.
Базовую настройку нового сервера мы разбирали в материале о защите Linux-сервера, а изоляцию нагрузок в кластере — в статье о Kubernetes для небольших команд. Подробнее о новом ядре — в новости о выходе Linux 7.3.
Стоимость поиска уязвимостей в ядре упала до тысячи с небольшим долларов за рабочий эксплойт. Такие же инструменты рано или поздно появятся и у атакующих, поэтому выигрывает тот, кто быстрее ставит обновления.