|
Опубликована информация об уязвимости в операционной системе Qubes, использующей гипервизор для строгой изоляции приложений и компонентов ОС (каждый класс приложений и системные сервисы работают в отдельных виртуальных машинах). В случае если атакующий скомпрометирует одну из виртуальных машин, уязвимость позволяет обойти изоляцию, добиться выполнения произвольных команд на стороне хостового окружения (Dom0) и получить контроль над всей операционной системой. Проблема проявляется при использовании пользователем утилиты "qvm-copy-to-vm" для копирования файла из хостового окружения в подконтрольную атакующему виртуальную машину. Уязвимость устранена в обновлении пакета qubes-core-dom0-linux 4.3.22.
Проблема присутствует в утилите "qvm-copy-to-vm" и вызвана ненадлежащей обработкой ошибок, возвращаемых при обращении к виртуальной машине. Суть уязвимости в том, что утилита qvm-copy-to-vm для отображения информации об ошибке запускала программы kdialog или zenity, используя функцию system() и подставляя сведения о неудачно скопированном файле в числе опций в командной строке. При этом чистка имени файла ограничивалась вырезанием не-ASCII-символов и двойных кавычек без проверки наличия спецсимволов, интерпретируемых командной оболочкой, таких как "`" и "$".
После завершения копирования файлов из хостовой системы обработчик на стороне виртуальной машины передаёт обратно подтверждение операции, в котором среди прочего указывается имя последнего полученного файла.
Атака сводится к возвращению кода ошибки вместо подтверждения и указанию для файла, который не удалось скопировать, имени с обрабатываемыми командным интерпретатором спецсимволами. После получения ошибки обработчик на стороне хостового окружения запустит командой system() утилиту для показа диалога с текстом ошибки, передав в командной строке возвращённое атакующим имя файла (например, при указании "file`id`" на стороне хостового окружения будет запущена команда id).
|