Пятнадцать лет в ядре Linux: как GhostLock даёт root любому

Баг просидел в коде с 2011 года, и всё это время его никто толком не трогал. Нашла его команда Nebula Security, присвоила имя GhostLock и зарегистрировала как CVE-2026-43499. Суть проста и неприятна одновременно: любой пользователь, у которого есть обычная учётная запись на машине, может получить полный root-доступ. Никаких особых прав, никаких экзотических настроек, никакого сетевого доступа — достаточно самых обычных вызовов потоков (threading), которые доступны любой локальной программе. Уязвимость затрагивает практически все основные дистрибутивы Linux, выпускавшиеся начиная с 2011 года — то есть почти всё, что стоит на серверах, в облаках и на десктопах последние полтора десятка лет.
Пятнадцать лет в ядре Linux: как GhostLock даёт root любому
Изображение носит иллюстративный характер

В тестах Nebula эксплойт срабатывал в 97% случаев. На тестовой машине атака занимала около пяти секунд — меньше, чем нужно, чтобы заварить чай. Отдельно неприятная деталь: эксплойт умеет вырываться из контейнеров, то есть container escape тоже на столе. Google через свою программу kernelCTF выплатил команде Nebula за находку 92 337 долларов. Нашли баг не руками — с помощью VEGA, собственного ИИ-инструмента Nebula для поиска уязвимостей. Пока в реальных атаках эксплуатация GhostLock не зафиксирована, но рабочий код эксплойта Nebula уже опубликовала, так что теория быстро может стать практикой.
Технически всё упирается в механизм ядра, придуманный для того, чтобы срочные задачи не блокировались из-за мелких и незначительных. В редком сценарии — когда операция блокировки (lock) заходит в тупик и вынуждена откатиться назад — процедура очистки, которая должна прибираться после того, как задача перестала ждать, срабатывает не в тот момент. В итоге стирается запись не той задачи, а ядро остаётся с «протухшим» указателем на память, которая уже освобождена и переиспользована кем-то другим. Это классический use-after-free. Оттолкнувшись от этой единственной точки входа, Nebula выстроила цепочку из нескольких шагов и довела дело до полноценного выполнения кода с правами root.
По шкале CVSS уязвимости присвоили 7.8 из 10 — это высокий уровень серьёзности, но не критический. Причина мягкой оценки простая: атакующему нужно уже находиться внутри системы под собственной учёткой. Для однопользовательского ноутбука риск невелик. Для облачного сервера с десятками арендаторов на одном железе — совсем другая история.
Патч вышел в апреле, коммит 3bfdc63936dd. Но и тут не обошлось без сюрприза: исходное исправление породило отдельный баг с падением системы, зарегистрированный как CVE-2026-53166. По состоянию на начало июля апстрим всё ещё дорабатывал финальную чистку для этой вторичной проблемы. Из этого следует практический вывод: ставить нужно не первую попавшуюся сборку с патчем, а актуальную текущую версию ядра — ранние патчи могли оказаться неполными или содержать побочные баги.
С дистрибутивами картина неровная. У Ubuntu на начало июля патч добрался до самой свежей версии и части облачных сборок ядра, а вот Ubuntu 24.04, 22.04 и 20.04 LTS — самые массовые версии в промышленной эксплуатации — на тот момент либо всё ещё уязвимы, либо патч находится в процессе. Общая рекомендация звучит скучно, но верно: проверять конкретные советы (advisories) своего дистрибутива и смотреть точные номера пропатченных пакетов, а не полагаться на предположения о том, что всё уже закрыто.
Есть два параметра сборки ядра, которые усложняют эксплуатацию, но не устраняют дыру: RANDOMIZE_KSTACK_OFFSET и STATIC_USERMODE_HELPER. Их стоит включить как временную меру, но полагаться на них как на решение не стоит — это подпорки, а не фикс.
В приоритете на патчинг стоят системы с несколькими пользователями и общим доступом — shared и multi-tenant машины, облачные серверы, контейнеры, CI-раннеры. Логика простая: злоумышленнику для этой атаки нужен именно локальный плацдарм, а такие системы как раз чаще всего дают посторонним пользователям хоть какой-то доступ внутрь.
GhostLock не одинок. В том же 2026 году всплыл Bad Epoll (CVE-2026-46242) — его называют «близким родственником» GhostLock, он тоже поднимает обычного пользователя до root и подтверждён через kernelCTF. Отличие в том, что Bad Epoll работает и на Android, что для этого класса багов встречается нечасто. Интересно, что в той же области кода модель Mythos от Anthropic была отмечена за обнаружение смежной проблемы. Ещё один пример — Copy Fail (CVE-2026-31431), который уже попал в список CISA как уязвимость, реально эксплуатируемую в атаках, а не только в лабораторных условиях. Это подтверждает, что подобные баги — не абстрактная теория для конференций, а рабочий инструмент атакующих.
Общая нить между этими находками — все они всплыли благодаря автоматизированным, ИИ-управляемым инструментам поиска уязвимостей. Затронутый код — механизм наследования приоритета для futex (futex priority inheritance) — старая и активно используемая часть ядра родом из 2011 года, которую годами всерьёз никто не перепроверял, пока за неё не взялись автоматические анализаторы кода.
Отдельного внимания заслуживает цепочка эксплойтов, которую в Nebula назвали IonStack. GhostLock играет в ней вторую половину. Первая половина — CVE-2026-10702, уязвимость в Firefox, которая позволяет выполнить код внутри браузера и вырваться из его песочницы. Дальше в дело вступает GhostLock и «довозит» полученный код до полного root-доступа. Продемонстрированная атака выглядела так: Firefox на Android, один тап по вредоносной ссылке — и полный контроль над устройством. Это хороший пример того, почему баг, требующий якобы только «локального» доступа, на деле оказывается серьёзной угрозой: в связке с уязвимостью браузера он превращается в полноценный удалённый вектор компрометации, работающий буквально по одному клику. Nebula обещает опубликовать полный технический разбор этой цепочки для Android отдельно.


Новое на сайте

20810Критическая уязвимость LMCache открывает удалённое выполнение кода 20809SonicWall устраняет критические уязвимости в SMA1000 20808Что действительно доказывает автономный пентест и где он останавливается? 20807Киберриск переместился внутрь рабочего процесса 20806Как китайская хакерская сеть превратила украденную почту в доступный другим сервис? 20805ARTEX и SCARLET LOOP: как ИИ превратился в инструмент кражи данных 20804Как Linux-бэкдоры маскируются под почтовую защиту в южной Корее и на Тайване? 20803Сможет ли Anthropic открыть опасные возможности ИИ для защиты сетей? 20802Японию накрыла волна утечек через API и Metabase 20801Как захват .gh, .sl и .as позволил выпускать сертификаты для Google? 20800Как MonsterCloud могла заработать на выкупе у киберпреступников? 20799Почему CVE-2026-21589 начали эксплуатировать через два часа после раскрытия? 20798Подделка админ-сессий в Rejetto HFS 20797Почему CVE-2026-88779 отключает SAML-сервисы NetScaler? 20796Почему Apple ограничит полный доступ ИИ-агентов к диску?
Ссылка