Qubes OS: уязвимость в qvm-copy-to-vm даёт запуск кода в dom0

Команда безопасности Qubes OS опубликовала бюллетень Qubes Security Bulletin 118 (QSB-118) от 28 августа 2026 года: обнаружена уязвимость выполнения произвольного кода в dom0, доверенном управляющем домене Qubes OS, через механизм обработки ошибок утилиты qvm-copy-to-vm.

qvm-copy-to-vm копирует файлы из dom0 в указанную виртуальную машину (кубу) по протоколу "qfile", упрощённому формату архива с метаданными файлов. После передачи целевая куба отправляет обратно подтверждение: контрольную сумму переданных файлов, код ошибки (если она была) и имя последнего полученного файла. Если код ошибки ненулевой, dom0 показывает GUI-сообщение с текстом ошибки и именем проблемного файла, как его сообщила целевая куба.

Именно в обработке этого имени файла и кроется уязвимость. Функция sanitize_remote_filename() перед передачей имени в обработчик ошибок вырезает только не-ASCII символы и двойные кавычки, но оставляет на месте спецсимволы командной оболочки. Далее display_error() в dom0 формирует команду для диалога kdialog или zenity и запускает её через system(), включая непроверенное имя файла прямо в текст команды, которую выполняет командная оболочка.

Итог: если куба скомпрометирована атакующим, и пользователь из dom0 инициирует qvm-copy-to-vm в сторону этой скомпрометированной кубы, атакующий может через специально сформированное имя файла в ответе об ошибке внедрить произвольную команду в dom0 и тем самым получить контроль над всей системой Qubes OS. Сторона VM у той же утилиты не подвержена уязвимости, её вариант функции сообщения об ошибках не использует system(), а вызывает zenity/kdialog напрямую через execlp().

Под угрозой все выпуски Qubes OS. Патч для Qubes 4.3, пакет qubes-core-dom0-linux версии 4.3.22, уже доступен в тестовом репозитории и после короткого периода тестирования сообществом перейдёт в стабильный. От пользователя требуется только обычное обновление системы, никаких дополнительных действий бюллетень не предписывает. Уязвимость обнаружил исследователь по имени Tim C. (в источнике указано только это имя, без дополнительных данных). Бюллетень подписан PGP-подписями двух сопровождающих проекта, Марека Марчиковски-Гурецкого и Саймона Гайзера (также известного как HW42).

Ключевые факты

  • Qubes Security Bulletin 118 (28 августа 2026): уязвимость выполнения произвольного кода в dom0 через утилиту qvm-copy-to-vm
  • Причина, функция sanitize_remote_filename() вырезает из имени файла не-ASCII символы и кавычки, но не спецсимволы командной оболочки, а имя затем попадает в system()
  • Условие эксплуатации: атакующий уже скомпрометировал кубу, а пользователь из dom0 запускает qvm-copy-to-vm именно к этой кубе
  • Затронуты все выпуски Qubes OS; сторона VM той же утилиты не уязвима, так как не использует system()
  • Патч, qubes-core-dom0-linux версии 4.3.22 для Qubes 4.3; для устранения достаточно обычного обновления системы

Почему это важно

Dom0 в Qubes OS, это доверенный управляющий домен, на изоляции которого держится вся модель безопасности системы: обычные кубы считаются потенциально скомпрометированными, а dom0, нет. Уязвимость, позволяющая скомпрометированной кубе выполнить код именно в dom0, бьёт в самое ядро этой модели и затрагивает все выпуски Qubes OS без исключения.

Кому это важно

Пользователям и администраторам Qubes OS, операционной системы, которую выбирают именно ради строгой изоляции между виртуальными машинами: исследователям безопасности, системным администраторам, журналистам и активистам, полагающимся на разделение окружений. Важно и тем, кто изучает архитектуру изоляции VM и типовые классы багов в обработке недоверенных данных на границе домена.

Как это применить

Обновить dom0 обычным способом через Qubes Update, для Qubes 4.3 нужен пакет qubes-core-dom0-linux версии 4.3.22, который сначала попадёт из тестового репозитория в стабильный после короткого периода проверки сообществом. Дополнительных ручных действий бюллетень не требует. До установки патча стоит учитывать риск при использовании qvm-copy-to-vm из dom0 в сторону куб, в которых не исключена компрометация.

Можно ли доверять

Источник, официальный Qubes Security Bulletin (QSB-118), опубликованный самой командой безопасности Qubes OS и подписанный PGP-подписями двух сопровождающих проекта, Марека Марчиковски-Гурецкого и Саймона Гайзера. Это первичный источник с максимальной степенью доверия для такого рода новости; текст сопровождается ссылками на конкретные строки уязвимого кода.

Риски и подводные камни

Эксплуатация требует двух условий сразу: куба уже скомпрометирована атакующим, и пользователь сам инициирует qvm-copy-to-vm из dom0 именно к этой кубе, то есть уязвимость не удалённая и не распространяется сама по себе. В бюллетене не указан номер CVE, не названа принадлежность или дополнительные данные об исследователе Tim C., не названы точные сроки перехода патча в стабильный репозиторий, и нет сведений об эксплуатации уязвимости в реальных атаках, источник описывает механизм и исправление, а не наблюдавшуюся атаку.

«Если qvm-copy-to-vm используется для копирования файла из dom0 во вредоносную кубу, эта куба может внедрить произвольную команду в dom0.»

— Qubes Security Bulletin 118