Уязвимость в Parallels Desktop позволяет локальным пользователям получить права root
Уязвимость ParaShells в Parallels Desktop for Mac позволяет локальному пользователю без привилегий выполнить контролируемый злоумышленником код с правами root через привилегированный демон prl_disp_service. Проверка на Parallels Desktop 26.4.0 (сборка 57513) на процессорах Apple Silicon показала, что для атаки не нужны запущенная виртуальная машина, доступ администратора или подписанный клиент Parallels.
Доступ к привилегированному демону
Атака использует /var/run/prl_disp_service.socket, сокет домена Unix с правами на запись для всех пользователей. Механизм аутентификации PrlSrv_LoginLocal принимает неподписанные локальные клиенты на основании учётных данных ядра, называемых peer credentials. Проверка идентификатора команды Parallels Team ID при этом не выполняется.
Локальный пользователь без прав администратора может пройти аутентификацию в демоне с правами root и запросить операции по установке виртуальных машин, включая appliance-install.
Внедрение аргументов при извлечении appliance
Вторая уязвимость связана с формированием аргументов для процесса извлечения данных из устройства. Демон собирает команду tar в виде строки, а затем преобразует её в аргументы с помощью функции разделения строк Qt. Кавычка в переданном пути к родительскому виртуальному машинному образу завершает предназначенный аргумент и позволяет внедрить дополнительные параметры tar.
В демонстрируемом полезном коде использовался параметр --use-compress-program=/path/to/script. При извлечении appliance утилита tar в macOS запускает указанную программу с теми же привилегиями, что и сама утилита. Процесс извлечения инициирует prl_disp_service от имени root, поэтому контролируемый злоумышленником скрипт также выполняется с привилегиями root.
В proof of concept использовались специально созданный архив appliance и соответствующие метаданные. Установка запускалась через сокет, а внедрённая программа применялась для выполнения полезной нагрузки. Скрипт мог сохранять поток архива и одновременно фиксировать выполнение с UID 0.
Возможные источники начального выполнения
Уязвимость создаёт путь к компрометации хоста для любой локальной учётной записи или уже запущенного процесса с ограниченными правами на Mac, где установлена уязвимая версия Parallels Desktop. Потенциальными источниками начального выполнения могут быть:
- вредоносные пакеты;
- скомпрометированные рабочие процессы разработки;
- загруженные приложения.
Успешная эксплуатация позволяет модифицировать хост-систему, устанавливать постоянные компоненты с повышенными привилегиями и выполнять произвольный код от имени root.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



