Root без прав администратора. Штатная служба Parallels Desktop стала трамплином для атаки

leer en español

3278
Root без прав администратора. Штатная служба Parallels Desktop стала трамплином для атаки

Исправление есть, но добраться до него смогут не все Mac.

image

Обычная локальная учётная запись на Mac с Parallels Desktop получила короткий путь к максимальным системным правам. Команда JFrog Security описала уязвимость CVE-2026-90894 с оценкой 7,8 High по CVSS 3.1, которая позволяет непривилегированному пользователю выполнить код от имени root.

Атака не работает удалённо сама по себе: злоумышленнику сначала нужен код, уже запущенный на Mac с обычными пользовательскими правами. После этого Parallels становится механизмом повышения привилегий. Для эксплуатации не требуется администраторская учётная запись, подтверждение со стороны владельца или запущенная виртуальная машина.

Ключевую роль играет служба prl_disp_service, которую Parallels Desktop запускает с правами root. Локальные процессы подключаются к ней через Unix-сокет /var/run/prl_disp_service.socket, доступный на запись всем пользователям. Проверка PrlSrv_LoginLocal принимает учётные данные процесса, но не требует подписи Parallels и не проверяет членство в группе администраторов.

Дальше ошибка проявляется при установке образа виртуальной машины. Служба собирает команду распаковки tar как единую текстовую строку, а Qt затем снова делит её на аргументы. Специально подобранная кавычка в имени каталога преждевременно завершает путь и превращает оставшийся текст в дополнительные параметры tar, которые служба обрабатывает уже с правами root.

В демонстрации JFrog использовала параметр --use-compress-program, позволяющий tar передать архив внешней программе. Поскольку tar запускает привилегированная служба, указанная атакующим программа тоже получает uid 0. На Parallels Desktop 26.4.0 сборки 57513 цепочка привела к root-оболочке. Проблема находится на стороне macOS-хоста, а не внутри гостевой системы.

Parallels Desktop 27 меняет сам способ запуска tar: вместо повторного разбора текстовой команды программа передаёт фиксированный набор аргументов. JFrog указывает 27.0.0 как первую версию с исправленным поведением, а CVE-запись помечает 27.0.1 как незатронутую. Ветка 26.x, включая 26.4.2, по данным JFrog, нужного изменения в механизме распаковки не содержит.

Команда проверила эксплуатацию непосредственно на версии 26.4.0 и отдельно предупредила, что не тестировала каждую предыдущую сборку. Поэтому для всей старой ветки вывод опирается на наличие прежнего механизма распаковки. В 26.4.2 он сохраняется, хотя эта версия вышла уже 8 сентября и остаётся актуальной для компьютеров Mac с процессорами Intel.

Для владельцев Intel Mac возникает отдельная проблема. Parallels убрала поддержку Intel из версии 27 и оставила таким компьютерам ветку 26 с обещанием дальнейших обновлений безопасности. Поэтому перейти на исправленную JFrog ветку 27 такие системы не могут, а отдельного исправления CVE-2026-90894 для 26.x на момент публикации Parallels не объявила.

Ситуация особенно заметна на фоне других ошибок на границе виртуализации, где защищённая гостевая среда неожиданно открывает путь к хосту. В случае ParaShells направление другое: атакующий уже находится на macOS и использует привилегированную инфраструктуру Parallels как готовый мост от обычной учётной записи к root.

Публичных сообщений об атаках с CVE-2026-90894 пока нет, а доступный материал JFrog описывает демонстрацию уязвимости, а не реальный инцидент. JFrog рекомендует обновить Parallels Desktop до 27.0.0 или новее. На машинах, где переход пока невозможен, компания советует ограничить локальный вход и проверить парк устройств с установленным Parallels Desktop.

Реклама 18+
Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com
Реклама