Один и тот же баг в инструментах изоляции: путь с ../ и символические ссылки
Инструменты, которые должны изолировать, сами не проверяют границы: путь с ../ или символическая ссылка позволяет записать данные за пределы каталога. Разбор уязвимостей в LXD, Incus, Flatpak, Bubblewrap и CUPS, а также практические рекомендации для администраторов.
Один и тот же баг в инструментах изоляции
Инструмент, который должен изолировать, при восстановлении резервной копии может записать задание cron в /etc/cron.d. Достаточно, чтобы в поле subvolumes[].path стоял путь ../../../../etc/cron.d. Дальше всё зависит от того, кто запустит восстановление и с какими правами.
В LXD исправлено 7 уязвимостей, в его форке Incus — 11. Исправления вышли в LXD 6.9, 5.21.8, 5.0.10, 4.0.14 и в Incus 7.5.1. Несколько проблем помечены как критические: локальный непривилегированный пользователь может изменить любые файлы в системе или выполнить код с правами root. Общая причина названа прямо: программа неправильно обрабатывает пути к файлам и символические ссылки и не проверяет входные данные в коде миграции, резервного копирования и загрузки образов.
Если смотреть на остальные проекты из того же выпуска, картина становится шире.
В Flatpak символическая ссылка открывает полный доступ к файловой системе хоста, хотя песочница существует как раз для того, чтобы этого не допустить. Другие ошибки там же связаны с ../ в build-init и DeployAppstream, которые выводят запись за пределы нужного каталога. В Bubblewrap символические ссылки позволяют писать файлы за пределами песочницы. В CUPS локальный пользователь через URI принтера может перезаписать /etc/cups/cups-files.conf и получить root. Serial-бэкенд работает от root, а исправления пока нет.
Это уже не выглядит как набор случайных сбоев. Путь с ../ или символическая ссылка заставляет программу записать данные туда, куда её никто не звал. Инструменты, которые должны ограничивать доступ, сами эту границу не проверяют.
В LXD проблема не ограничивается файлами. CVE-2026-86335 открывает доступ к приватным образам виртуальных машин других пользователей, а CVE-2026-97335 обходит ограничения доступа к проектам. Здесь ошибка находится в модели разграничения прав, а не в обработке пути. Материал не показывает, насколько эти две проблемы связаны с путевыми багами, поэтому делать из них общий вывод рано.
Для администратора практический список довольно приземлённый. LXD или Incus нужно обновить до исправленной версии, Flatpak до 1.18.1, OpenVPN до 2.6.23, WordPress до исправленной ветки. Для CUPS патча пока нет, так что разумно ограничить локальный доступ или отключить сервис. Серверный FreeRDP стоит проверить на предмет того, включён ли он: по комментарию к материалу, описанная проблема касается серверной реализации, которая по умолчанию выключена.
Обновления при этом решают не всё. Многие атаки начинаются с внешних данных: образа с чужого сервера, резервной копии, архива. Если импорт таких данных не проверяется, любая починка в коде оставляет дыру. Контроль источников нужен отдельно от обновлений.
Есть и разрыв во времени. Уязвимость в модуле espintcp ядра Linux исправлена в феврале перед релизом 7.0, но рабочий эксплойт, дающий root, уже показан на CentOS Stream 9 и Ubuntu 26.04 LTS. Патч есть, а системы, которые не обновились, уже стоят под угрозой публичного кода.
Не всё в материале однозначно. Для части уязвимостей LXD уровень серьёзности не указан. Один пункт Flatpak помечен как «CVE не назначен», и насколько он подтверждён, неясно. Связь роста числа находок с ИИ встречается только в комментарии к выпуску, в самом тексте её нет. Суждения о Rust и Go остаются мнениями пользователей, а не фактами, и их стоит держать отдельно.