В ядре Linux обнаружены уязвимости в сетевом стеке, графическом драйвере VMWGFX и драйвере nvmet. Ошибка в сетевом стеке позволяет локальному пользователю записать данные в файл, который ему разрешено только читать, и получить права root. Похожую возможность даёт ошибка в VMWGFX, если у пользователя есть доступ к виртуальному графическому адаптеру. Драйвер nvmet раскрывает содержимое памяти ядра.
Перезапись страничного кэша и выход за границы битовой карты
Отчёт ZDI-CAN-33367 описывает ошибку в обработке сетевых пакетов. Передавая пакет в очередь Netfilter (NFQUEUE - механизм, который отдаёт пакеты приложению для проверки), ядро копирует ссылки на страницы памяти, но теряет признак общего владения ими. Подсистема IPsec (ESP - протокол шифрования трафика) поэтому считает данные приватными и расшифровывает их прямо в страницах страничного кэша, то есть копии файла в памяти. В результате непривилегированный процесс меняет байты файла, открытого только на чтение. Оценка по CVSS (шкала опасности уязвимостей) - 7,8 из 10.
Прототип эксплойта переписал несколько байт в файле, принадлежащем root и доступном только на чтение. Права, владелец и время изменения файла при этом не меняются, поэтому подмену трудно заметить по метаданным. Атака идёт локально: нужен обычный вход в систему, права администратора не требуются, участие пользователя не нужно. Для воспроизведения прототип создаёт непривилегированное пользовательское пространство имён и отдельное сетевое пространство. Проверка шла на ядре 7.3-rc1 в Debian trixie, прототип также работает в нескольких выпусках Ubuntu.
Публикация отчёта делает технические детали доступными, но не подтверждает применение в реальных атаках; сведений о таких атаках нет. Патч подготовлен, однако номер исправленной версии ядра не назван. Искать его нужно в патче ядра и в бюллетене дистрибутива: внеплановое обновление пакетов с ядром выпустила AlmaLinux.
Отчёт ZDI-CAN-34068 касается драйвера VMWGFX, который отвечает за 3D-ускорение в гостевых системах VMware. Драйвер отмечает изменённые страницы буфера в битовой карте (наборе битов, по одному на страницу) и выделяет её по размеру буфера. К поверхности можно привязать буфер меньшего размера, после чего ядро обращается к карте по размеру поверхности. Запись выходит за границы выделенного блока в куче ядра, то есть в области динамической памяти ядра.
Повреждение памяти в куче даёт отказ в обслуживании и повышение привилегий до root. Оценка по той же шкале - 8,8 из 10. Атака идёт локально и не требует прав администратора, но нужен доступ к устройству виртуального графического адаптера. Проверка шла на ядрах 7.3-rc2 и 7.0.0-22, полный эксплойт работает на Ubuntu 26.04 с ядром 7.0.0-22. Сведений о реальных атаках нет, исправление в отчёте не упоминается, а номер исправленной версии не назван; следить нужно за обновлениями ядра и бюллетенями дистрибутивов.
Отчёт ZDI-CAN-34076 касается драйвера nvmet. Это целевая часть ядра для NVMe over Fabrics, то есть передачи доступа к накопителям по сети. Ошибка приводит к утечке информации о содержимом памяти ядра: процесс может прочитать данные, которые должны оставаться внутри ядра. Оценку, затронутые версии и условия доступа источник не приводит, полного текста отчёта в доступных материалах нет. Сведений об эксплуатации тоже нет.
Администраторам нужно обновить ядро до сборки с патчем и следить за бюллетенями дистрибутива. Официальных обходных мер в отчётах нет. Ошибка в сетевом стеке важна для большинства систем на Linux, потому что сетевой стек работает всегда. Ошибка в VMWGFX ограничена гостевыми системами VMware с доступом к виртуальному GPU. Утечка через nvmet затрагивает узлы хранения, которые отдают накопители по сети.
Ссылки
- https://lore.kernel.org/lkml/BYAPR01MB3830CECF5D0871064C59BA0280662@BYAPR01MB3830.prod.exchangelabs.com/
- https://lore.kernel.org/dri-devel/BYAPR01MB38301CFC012E873340F77E3D80662@BYAPR01MB3830.prod.exchangelabs.com/
- https://lore.kernel.org/all/BYAPR01MB3830CA9B77EC6FF73C27C2AF80662@BYAPR01MB3830.prod.exchangelabs.com/