Работающий эксплойт с правами суперпользователя (root) для ошибки в ядре Linux появился в публичном доступе до того, как для него был назначен идентификатор CVE или объединен исправление. 20 октября 2026 года инициатива Zero Day Initiative (ZDI) компании Trend Micro направила один отчет — об ошибке в менеджере сети ConnMan — в публичный список рассылки ConnMan. 21 октября ZDI направила пять отчетов команде безопасности ядра Linux и во всех случаях поставила в копию публичные списки рассылки. Отчеты содержали детали воспроизведения и показывали, что к некоторым из них не прилагалось патчей и исправления не было ни в одном выпущенном ядре. Две уязвимости в Linux были rated as CVSS 9.0.
Ни для одной из шести уязвимостей пока не назначен идентификатор CVE, и на момент публикации этого блога не было зафиксировано случаев эксплуатации «в дикой природе» (in-the-wild). Тем не менее, команды безопасности должны заняться настройкой обнаружения и средств защиты уже сейчас. TuxCare воспроизвела публичный концепт-артефакт (PoC) для ZDI-CAN-33367 из отчета ZDI. Эксплуатация приводит к получению доступа root на актуальных дистрибутивах Ubuntu, Debian и AlmaLinux.
Команда Sysdig Threat Research Team (TRT) изучила этот набор уязвимостей Linux и ранжировала отчеты в зависимости от того, насколько сильно каждая из них должна влиять на действия защитников в текущий момент. В этом отчете рассматривается то, что было раскрыто, кто может находиться в зоне риска, какие аномалии можно обнаружить с помощью мониторинга во время выполнения для каждой ошибки, а также что могут сделать защитники в ожидании патчей.
Хронология
Уязвимые версии
Риск воздействия существенно различается в зависимости от отчетов. Один затрагивает основные дистрибутивы, протестированные TuxCare, включая релизы Ubuntu, Debian и AlmaLinux. Два затрагивают только хосты, на которых запущен ksmbd — встроенный в ядро сервер SMB. Еще один затрагивает только виртуальные машины VMware.
Организациям следует провести ревизию своих систем, прежде чем принимать решение о приоритезации этих уязвимостей.
ZDI-CAN-33367
Статус исправления
Небольшой патч «net: skbuff: propagate shared-frag marker in skb_zerocopy()» находится на netdev, проверен Эриком Дюмазе (Eric Dumazet) и помечен как стабильный. Он еще не был объединен (merged).
Как работает ошибка: Снова Dirty Frag
Ранее в этом году уязвимость Dirty Frag (CVE-2026-43284) показала специалистам по защите, как непривилегированный пользователь может заставить код IPsec ESP ядра выполнить расшифровку на месте поверх страниц, принадлежащих к кэшу страниц (page cache). Эти страницы поддерживают файл, который пользователь может только читать, и дешифрование записывает байты атакующего в кэшированную копию этого файла. Нацеливание на setuid-бинарник или /etc/passwd таким образом дает злоумышленнику права root без необходимости открывать файл для записи.
Исправление Dirty Frag пометило эти разделяемые страницы специальным флагом и научило ESP выполнять копирование перед расшифровкой, когда он видит этот флаг. ZDI-CAN-33367 представляет собой упущение в этом исмении.
skb_zerocopy() перемещает те же страницы в новый буфер сокета (socket buffer), но не переносит этот флаг. ESP никогда не видит флаг, расшифровывает данные на месте, и запись попадает в кэш страниц. Согласно и Safeguard, этот путь выполнения кода берет свое начало в ядре версии 3.14.
Это не первый пропуск
Исправление Dirty Frag работает только в том случае, если каждый участок сетевого кода, который перемещает эти страницы, переносит и флаг. Начиная с мая, команда CVE ядра опубликовала шесть дополнительных CVE, где на каком-то другом пути флаг терялся:
- Вспомогательные функции копирования и сдвига фрагментов (Frag-copy and shift helpers): CVE-2026-43503
- Объединение (Coalescing): CVE-2026-46300
- IPTFS: CVE-2026-53363, CVE-2026-64566
- Вспомогательная функция обработки ошибок: CVE-2026-80977
- Еще один путь обработки ошибок внутри самого skb_zerocopy(): CVE-2026-90049
CVE-2026-90049 — это другая ошибка в той же функции, поэтому ядро, содержащее исправление для нее, не защищено от ZDI-CAN-33367.
Эксплуатация
Для PoC требуются непривилегированные пространства имен пользователей и горстка сетевых модулей: nlmon, nft_queue, nfnetlink_queue, cls_u32, act_pedit, act_mirred и esp4. Ему не требуется утечка рандомизации размещения адресного пространства ядра (KASLR) или какие-либо привилегии, которых пользователь еще не получил в своем собственном пространстве имен.
Каждый шаг эксплуатации представляет собой системный вызов, который может быть выполнен обычным процессом пользователя:
- Выполнение unshare в новые пространства имен пользователя и сети, затем запись параметров sysctl.
- Поднятие интерфейса nlmon.
- Установка состояния XFRM через netlink.
- Добавление правила NFQUEUE в nftables.
- Подключение действия tc pedit с перенаправлением.
- Вызов splice() в сокет на 127.0.0.1, что запускает расшифровку на месте поверх кэша страниц.
Воздействие
TuxCare воспроизвела получение оболочки root на AlmaLinux 8–10, CloudLinux 9–10, Debian 12 и 13, а также Ubuntu 24.04 и 26.04. На AlmaLinux права root были получены при установленном исправлении Dirty Frag. Ядра CentOS 6 и 7 не уязвимы. Эта уязвимость представляет собой повышение локальных привилегий (LPE), поэтому злоумышленнику сначала требуется выполнение кода на хосте.
ZDI-CAN-33774 и ZDI-CAN-33549
Оба отчета с оценкой CVSS 9.0 касаются ksmbd — встроенного в ядро сервера Server Message Block (SMB). Samba — это не ksmbd.
Если на ваших файловых серверах запущен smbd, ни один из отчетов к вам не относится. Чтобы проверить, запущен ли ksmbd где-либо, найдите модуль ядра ksmbd, демон пользовательского пространства ksmbd.mountd и прослушиватель TCP 445, принадлежащий ядру.
ZDI-CAN-33774: Состояние гонки при диспетчеризации
ksmbd для каждого запроса определяет, обрабатывает ли он SMB1 или SMB2. Если злоумышленник упаковывает серию коротких пакетов SMB1 и один пакет SMB2 в ту же запись TCP, рабочие потоки могут запустить обработчик SMB2 для данных SMB1 и прочитать за пределами конца более короткого буфера. Это работает до аутентификации. Публичный PoC приводит к утечке 28 байтов кучи ядра за одну попытку и может вызвать сбой (панику) ядра. ZDI описывает путь записи за пределы буфера, требующий доступа к общему ресурсу (share), и классифицирует ошибку как удаленное выполнение кода (RCE), однако на момент публикации этого блога в публичном доступе нет подтверждений выполнения кода.
Сопровождающий Намдже Чон (Namjae Jeon) говорит, что эта ошибка уже исправлена, и его ветка кода подтверждает это. Коммит 68f410faedaf ("ksmbd: wait for negotiation before receiving another PDU"), написанный 30 сентября и приписанный другому автору, описывает именно эту гонку. Он находится в очереди ветки ksmbd-for-next для ksmbd и еще не добрался до выпущенного ядра.
ZDI-CAN-33549: SMB Direct
Целочисленное переполнение (integer underflow) в транспорте RDMA (Remote Direct Memory Access) превращает специально сформированный дескриптор буфера в переполнение кучи размером до восьми килобайт. Требования для воспроизведения здесь выше, чем для 33774. Хосту необходим интерфейс с поддержкой RDMA (аппаратный или программный драйвер rxe), клиент, согласовывающий SMB Direct, и общий ресурс с правами на запись. Публичный PoC приводит к сбою ядра.
Сопровождающий SMB Direct Штефан Метцмахер (Stefan Metzmacher) считает, что исправление, уже находящееся в его ветке для Linux 7.5, устраняет эту проблему. На момент написания статьи это не было подтверждено. Ubuntu собирает поддержку SMB Direct; Debian — нет.
ZDI-CAN-34068
ZDI-CAN-34068 — это запись с выходом за границы буфера (out-of-bounds write) в vmwgfx, драйвере ядра для виртуального GPU от VMware, получившая оценку LPE (CVSS 8.8). Публично доступно только название. Ответ Кроа-Хартмана (Kroah-Hartman) в рассылке dri-devel указывает на код отслеживания изменений (dirty-tracking). Патча нет.
Область воздействия узкая. vmwgfx подключается только к виртуальному адаптеру дисплея SVGA от VMware, поэтому ошибка имеет значение только на гостевых ОС VMware: виртуальных машинах vSphere и Workstation, а также инфраструктуре виртуальных рабочих столов (VDI) на базе VMware. По данным тестирования Sysdig TRT, она не воспроизводится на инстансах Lima или EC2, на которых это устройство отсутствует.
ZDI-CAN-34076 and ZDI-CAN-32005
ZDI-CAN-34076 (nvmet) — это утечка информации из неинициализированной памяти при обработке запроса Get Log Page в целевом устройстве Non-Volatile Memory Express (NVMe). Публично доступно только название, а команда ядра заявила, что ничего нельзя предпринять до получения подробностей.
ZDI-CAN-32005 (ConnMan) — это переполнение стека в DNS-прокси сетевого менеджера ConnMan. Это баг в пространстве пользователя, а не в ядре, и он находится за рамками данной статьи.
Обнаружение
Четыре уязвимости, имеющие наибольшее влияние в настоящее время, различаются с точки зрения того, что может наблюдать датчик среды выполнения на уровне системных вызовов:
- ZDI-CAN-33367. Последовательность эксплуатации является специфической. Процесс разделяет пространства имен пользователя и сети (unshares), записывает параметры sysctl, поднимает интерфейс nlmon, устанавливает состояние XFRM через netlink, добавляет правило nftables NFQUEUE, подключает действие tc pedit с перенаправлением и затем выполняет splice() в сокет на 127.0.0.1. Ни один легитимный процесс не выполняет все это из непривилегированного состояния. Из четырех уязвимостей эту обнаружить проще всего.
- ksmbd (33774 и 33549). Датчик может видеть, что ksmbd выставлен наружу: модуль загружается, ksmbd.mountd запускается, а порт 445 находится в режиме прослушивания. Он может видеть, что делает злоумышленник после выполнения кода, когда что-то порождает процесс или обращается к файлам. Он не может увидеть само состояние гонки (race condition) или переполнение. Обнаружение во время выполнения выступает в роли защитного рубежа.
- ZDI-CAN-34068. Триггером являются вызовы ioctl() DRM на узле устройства vmwgfx, инициированные локальным процессом. Это сужает область поиска, но графические ioctl создают много шума на любом десктопе или гостевой системе VDI, поэтому их следует рассматривать лишь как контекст для расследования, а не как самостоятельный сигнал.
Клиенты Sysdig Secure защищены новым правилом среды выполнения в политике поведенческой аналитики среды выполнения Sysdig (Sysdig Runtime Behavioral Analytics), озаглавленным «Page Cache Poisoning via Spliced File Pages to Loopback», которое соответствует паттернам системных вызовов для ZDI-CAN-33367. Работа над эксплойтами для других уязвимостей из этого раскрытия продолжается, и команда Sysdig TRT пишет правила обнаружения для них по мере того, как техники становятся понятными.
Независимо от точки входа, клиенты также сохраняют защиту на этапе после эксплуатации (post-exploitation), которая обнаруживает последствия успешной атаки, а не сам путь проникновения.
Рекомендации
ZDI-CAN-33367
- Установите патч, как только ваш дистрибутив выпустит исправление для skb_zerocopy(). Ядро, содержащее только исправление CVE-2026-90049, не защищено.
- Ограничьте непривилегированные пространства имен пользователей. Установка user.max_user_namespaces=0 (или kernel.unprivileged_userns_clone=0 на Debian) должна блокировать публичный PoC, хотя TuxCare отмечает, что еще не проверила это на практике против PoC. Цена этого решения реальна: контейнеры без root-прав, некоторые песочницы браузеров и инструменты сборки зависят от пространств имен пользователей, поэтому применяйте эту меру только на хостах, где они не нужны.
- Не полагайтесь на ограничение пространств имен пользователей в AppArmor от Ubuntu. PoC обошел его через профиль AppArmor пакета контейнерного лаунчера.
- Блокируйте модули nlmon и act_pedit везде, где это возможно. Отказ от них ломает данный PoC, хотя TuxCare предупреждает, что это может закрыть не каждый путь к уязвимости.
- Применяйте seccomp RuntimeDefault для подов Kubernetes. Эксплойт начинается с создания пространства имен пользователя, поэтому под угрозой находятся контейнеры, способные вызывать unshare(CLONE_NEWUSER). Профиль seccomp по умолчанию в Docker блокирует этот вызов, однако поды Kubernetes запускаются без ограничений (Unconfined), если вы не установите RuntimeDefault для каждого пода или на уровне кластера с помощью опции kubelet --seccomp-default. Сейчас самое подходящее время сделать это значением по умолчанию для кластера.
ZDI-CAN-33774 и ZDI-CAN-33549
- Проведите инвентаризацию систем, где запущен ksmbd. Пользователи Samba не затронуты.
- Выгрузите ksmbd и заблокируйте модуль на хостах, где он не нужен.
- Ограничьте доступ по TCP 445 доверенными сетями, где ksmbd должен оставаться доступным.
- Отключите SMB Direct, если ваша сеть хранения данных не зависит от RDMA.
ZDI-CAN-34068
- Проведите инвентаризацию гостевых систем Linux, работающих на VMware, и следите за появлением патча для vmwgfx.
- Отключите 3D-ускорение или предотвратите загрузку модуля vmwgfx на гостевых ОС, которым он не нужен.
Для всех уязвимостей в Linux
- Отслеживайте отчеты по идентификаторам ZDI и названиям компонентов до тех пор, пока им не будут назначены CVE.
Заключение
Решение ZDI опубликовать общедоступные списки предоставило злоумышленникам детали воспроизведения шести уязвимостей до того, как для нескольких из них появились исправления. Как знают защитники, отсутствие назначенного идентификатора CVE не означает отсутствие риска. Только одна из шести уязвимостей, ZDI-CAN-33367, объединяет в себе публичный эксплойт для локального повышения привилегий, широкое распространение в дистрибутивах и исправление, которое еще не было объединено (merged). Это уже седьмой найденный путь сброса флага Dirty Frag, возобновляющий класс уязвимостей, защита от которого давала сбой уже шесть раз с мая 2026 года. Два отчета по ksmbd имеют самые высокие оценки опасности, но они имеют значение только там, где запущен именно ksmbd, а не Samba.
Для специалистов по безопасности практический вывод заключается в том, что работа на этой неделе связана с оценкой подверженности риску, а не со сканерами. Также важно отметить, что уязвимости различаются с точки зрения того, за чем именно нужно следить защитникам. Эксплойт ZDI-CAN-33367 выполняется как обычный пользовательский процесс через характерную последовательность системных вызовов, поэтому команды могут перехватить его в процессе работы. Ошибки в ksmbd выполняются внутри потоков рабочих процессов ядра (kernel worker threads) без запуска процесса злоумышленника на хосте, поэтому ключевым фактором является контроль уровня воздействия.
Затронутым организациям следует немедленно ограничить непривилегированные пространства имен пользователей и внедрить политику seccomp RuntimeDefault везде, где это возможно, выяснить, запущен ли ksmbd где-либо в их инфраструктуре, и установить исправление для ZDI-CAN-33367 в день выпуска патча их дистрибутивом.









.png)
