Бесплатно Экспресс-аудит сайта:

17.09.2025

0day в ядре Linux: один пакет превращает сервер в трофей атакующего

Исследователи из компании Doyensec совместно с независимым автором под псевдонимом BitsByWill на днях продемонстрировали работоспособную цепочку эксплуатаций, позволяющую организовать удалённый запуск кода в ядре Linux через компонент KSMBD — встроенный сервер SMB3. Специалисты продемонстрировали надёжный эксплойт против ядра 6.1.45, добиваясь RCE с вероятностью успеха свыше 95 процентов и подробно разобрали комбинацию уязвимостей, использованных в атаке.

Атака начинается с неаутентифицированного переполнения кучи в обработчике NTLM-аутентификации — уязвимость CVE-2023-52440 . Злоумышленник отправляет специально сформированный SMB2_SESSION_SETUP с завышенным полем SessionKey, что вызывает контролируемое SLUB-переполнение в аллокации kmalloc-512 и даёт примитив записи в кучу. Дальше применяется второе уязвимое место — ошибка в парсере расширенных атрибутов ( CVE-2023-4130 ), которая при наличии вредоносного EA-буфера предоставляет примитив чтения вне границ и позволяет вытянуть указатели из кучи. Сочетание «writeheap» и «writeleak» открывает путь к обходу KASLR через чтение указателей из kmalloc-1k, где хранятся объекты соединений KSMBD.

Исследователи описывают методику как «spray-and-check»: создаётся множество SMB-соединений и сессий, затем повторно триггерится переполнение, пока одна из сессий не окажется повреждена. Получив базовый адрес ядра, злоумышленник собирает ROP-цепочку, переносит стек в управляемую область, перезаписывает указатели функций в объектах kmalloc-1k и вызывает call_usermodehelper для запуска обратного шелла в пользовательском пространстве. Для стабилизации работы в эксплойте используется «sleep»-гаджет, удерживающий поток ядра живым и предотвращающий крах системы.

Авторы подчёркивают, что KSMBD обычно отключён в большинстве инсталляций, поэтому масштабные взломы не гарантированы, но при наличии устаревшего ядра 6.1.x с включённым KSMBD и доступом из ненадёжной сети риск реальный.

Практические рекомендации включают немедленное обновление до версии ядра, содержащей исправления, включение стандартных механизмов защиты — SMEP, SMAP, KPTI и рандомизации freelist для slab — что снижает надёжность эксплуатации, но не делает систему полностью неуязвимой, а также переход на SMB-сервера в пространстве пользователя, если требования к производительности позволяют. Дополнительные меры — ограничение доступа к SMB из непроверенных сетей, отключение анонимной записи и мониторинг аномального трафика SMB.

Продемонстрированный кейс служит напоминанием о рисках размещения сложной сетевой логики в пространстве ядра — потенциальная выигрышная производительность оборачивается расширением поверхности атаки. Администраторы должны ввести регулярную проверку модулей ядра и оперативно применять обновления безопасности, а также взвешивать необходимость включения KSMBD на серверах, доступных извне.