Администрирование

CVE-2026-8933 в snap-confine: какие Ubuntu-хосты патчить первыми

Дмитрий Потоцкий 1 мин чтения
CVE-2026-8933 в snap-confine: какие Ubuntu-хосты патчить первыми

Локальная учётка на Ubuntu Desktop больше не ограничивает пользователя его правами. На 24.04, 25.10 и 26.04 он может получить root через CVE-2026-8933 в snap-confine. Уязвимый пакет установлен по умолчанию.

Если ты отвечаешь за рабочие станции или jump host, задача на сегодня простая: найти эти машины, определить выпуск Ubuntu и обновить snapd до исправленной версии. Не растягивай патч на общий аудит Linux — он только съест время.

AppArmor не перекрывает путь к root

snap-confine строит окружение для запуска Snap-приложений. Canonical отказалась от setuid root и перевела компонент на capabilities: процесс получает эффективный UID пользователя, который его вызвал, но сохраняет полномочия, близкие к root.

При подготовке sandbox процесс создаёт файлы и каталоги в /tmp. Сначала ими владеет обычный пользователь. Чуть позже snap-confine передаёт владение root. Между этими действиями остаётся короткое окно, которым пользуется атакующий.

Эксплойт сводит две гонки в одну цепочку. В первой атакующий монтирует FUSE поверх временного scratch-каталога и выходит за ограничения mount namespace. Во второй подменяет объект symlink-ссылкой: open() следует по ней и записывает данные в выбранный файл.

AppArmor эту цепочку пропускает. Профиль разрешает чтение и запись по пути /run/udev/**, поэтому атакующий кладёт вредоносное правило в /run/udev/rules.d/. Новый FUSE-цикл запускает обработку правила, и systemd-udevd выполняет команду от root.

Наличие профиля AppArmor ничего не говорит о защищённости хоста. Смотри на полную версию пакета snapd для конкретного выпуска Ubuntu.

Сначала обнови Desktop с локальными пользователями

Первыми ставь в очередь Ubuntu Desktop 24.04, 25.10 и 26.04 с непривилегированными локальными учётками. Qualys подтвердил на этих установках полный путь от обычного пользователя до root. Уязвимый вариант snap-confine входит в стандартную поставку.

Для инвентаризации хватит двух команд:

. /etc/os-release
printf 'Ubuntu %s\n' "$VERSION_ID"
dpkg-query -W -f='${Package}\t${Version}\n' snapd

Запиши выпуск Ubuntu и полную версию пакета. Отметка «snapd установлен» бесполезна: по ней нельзя отличить исправленную машину от уязвимой.

Но тремя выпусками Desktop работа не заканчивается. Canonical раскрыла сразу три уязвимости snapd: две высокой критичности и одну средней. Векторы атаки у них разные.

CVE-2026-15226 позволяет выйти из confined root внутри Snap в unconfined root на хосте. CVE-2024-5300 открывает sandbox-приложению доступ к хешам паролей и затрагивает LTS-релизы вплоть до Ubuntu 16.04.

Порядок патчинга такой:

  1. Ubuntu Desktop 24.04, 25.10 и 26.04 с локальными пользователями — обновить в первое доступное окно.
  2. Хосты, где недоверенный Snap может получить root внутри sandbox, — отдельно проверить на CVE-2026-15226.
  3. Старые LTS — проверить на CVE-2024-5300 и уточнить, действует ли для выпуска канал поддержки.

Не угадывай исправление по major-версии snapd

У snapd два типа релизов. Major-релизы добавляют функции и исправляют ошибки. Minor-релизы закрывают ошибки и уязвимости.

До раскрытия security-fix разрабатывают в закрытом репозитории. В публичный код его переносят, когда исправление готово к публикации. Свежий коммит или новый номер major-релиза ещё не доказывает, что пакет на хосте закрывает конкретную CVE.

Схема обновлений зависит и от стадии поддержки Ubuntu. Выпуски в standard support получают minor-обновления до следующего major. Для expanded или legacy support minor-релиз обычно собирают на базе последнего major, выпущенного до окончания standard support.

Поэтому сверяй полную версию snapd с исправленным пакетом Canonical для своего выпуска Ubuntu. Номер пакета из 24.04 нельзя переносить на 22.04 или 16.04 только потому, что версии похожи.

Патч уже есть — не подменяй его workaround’ом

После согласованного раскрытия Ubuntu Security Team выпустила исправления CVE-2026-8933. Qualys также готовит QID для поиска уязвимых систем.

Исследование не подтверждает, что удаление Snap, ручная правка /tmp или изменение профиля AppArmor разрывают всю цепочку. Любая такая мера создаёт отдельную конфигурацию, которую придётся проверять самому. Пакет с исправлением уже доступен — ставь его.

Сначала сверь версию, затем обнови пакет штатным для своего контура способом:

sudo apt update
sudo apt install --only-upgrade snapd
dpkg-query -W -f='${Package}\t${Version}\n' snapd

Успешный запуск apt — ещё не доказательство патча. В инвентаризации должны остаться выпуск Ubuntu, версия snapd после обновления и результат сверки с бюллетенем Canonical.

Если версия пакета не изменилась, не отмечай хост исправленным. Проверь подключённые репозитории и канал поддержки выпуска. В expanded и legacy support minor-релизы собирают иначе, чем в standard support.

Рабочее правило на сегодня: Ubuntu Desktop 24.04, 25.10 или 26.04 с локальными пользователями получает обновление snapd в первое окно. Старые LTS тоже остаются в очереди — на них отдельно проверь CVE-2024-5300 и доступность security minor-релиза.

Перед закрытием тикета заполни четыре поля:

  • выпуск Ubuntu;
  • версия snapd до и после обновления;
  • версия исправленного пакета для этого выпуска;
  • причина исключения, если хост не получает обновление.