Компания Qualys обнаружила критическую уязвимость (CVE-2026-3888) в системе взаимодействия между snap-confine и systemd-tmpfiles в операционной системе Ubuntu. Данная уязвимость позволяет непривилегированному пользователю получить привилегии root, что представляет серьёзную угрозу безопасности.
Проблема проявляется в стандартных конфигурациях Ubuntu начиная с версии 24.04. В более старых выпусках (16.04-22.04) уязвимость может быть эксплуатирована при настройке системы, имитирующей поведение новых версий дистрибутива.
Уязвимость возникает из-за некорректного взаимодействия между snap-confine и systemd-tmpfiles. Snap-confine отвечает за создание sandbox-окружения для выполнения snap-приложений, а systemd-tmpfiles автоматически удаляет временные файлы и каталоги в /tmp. Проблема заключается в том, что после удаления каталога /tmp/.snap системой systemd-tmpfiles, атакующий может подменить его содержимое до момента пересоздания этого каталога snap-confine.
Атакующему требуется дождаться запуска процесса очистки временных файлов. В Ubuntu 24.04 это происходит раз в 10 дней, а в более новых версиях — раз в 30 дней. После подмены каталога /tmp/.snap атакующий может заменить библиотеки и загрузчик ld.so, что позволяет выполнить произвольный код с правами root.
Получив контроль над sandbox-окружением, изолированным через AppArmor и seccomp, атакующий может скопировать /bin/bash в каталог /var/snap/$SNAP/common/ и установить ему права "04755" (suid root). Несмотря на то, что изменения произведены внутри sandbox-окружения, файл с изменёнными правами доступен и в основной системе. Таким образом, обычный непривилегированный пользователь может запустить /var/snap/<имя_snap_пакета>/common/bash для получения полного root-доступа.
Кроме того, была обнаружена уязвимость в инструментарии uutils coreutils (Rust Coreutils), аналоге пакета GNU Coreutils, написанном на языке Rust. Эта уязвимость также позволяет непривилегированному пользователю получить права root. Проблема была выявлена при рецензировании изменений в Ubuntu 25.10 и временно устранена путём замены uutils rm на /usr/bin/gnurm.
Уязвимость вызвана состоянием гонки в утилите "rm", позволяющим локальному пользователю подменить содержимое каталога на символическую ссылку во время удаления файла с правами root. Это может быть использовано для удаления любого файла в системе или повышения привилегий через удаление каталога /tmp/snap-private-tmp/$SNAP/tmp/ и подмену содержимого sandbox-окружения snap-пакета.
В пакете uutils проблема была устранена в выпуске 0.3.0, хотя об этом не было указано явно в списке изменений.