Уязвимость Parallels Desktop позволяет получить root на Mac

Исследователи JFrog раскрыли уязвимость CVE-2026-90894 в Parallels Desktop for Mac, которая позволяет непривилегированному локальному пользователю выполнить код с правами root. Проблема подтверждена на Parallels Desktop 26.4.0, build 57513, на Mac с Apple silicon; JFrog оценила её в 7,8 балла из 10.
Исправление, по сведениям JFrog, появилось в Parallels Desktop 27.0.0 и новее. Но версия 27 поддерживает только компьютеры Apple silicon с macOS Sonoma 14.7 или новее, тогда как пользователи Intel Mac должны оставаться на ветке 26.x.
Как работает повышение привилегий
Parallels Desktop устанавливает службу prl_disp_service, работающую от имени root. Она, в частности, настраивает сеть хоста и распаковывает пакеты виртуальных машин. Поэтому риск относится к самой macOS, а не к гостевым Windows или Linux.
На исследованной JFrog системе сокет службы был доступен для записи всем локальным процессам. Вызов PrlSrv_LoginLocal проверяет учётные данные, которые ядро сообщает для подключившегося процесса, но не требует подписи кода Parallels и не требует прав администратора.
При установке образа виртуальной машины служба формирует команду распаковки через tar. Часть строки задаёт вызывающий процесс: это каталог назначения новой виртуальной машины. Кавычка в имени каталога может преждевременно закрыть экранирование и превратить последующий текст в дополнительные параметры tar.
JFrog использовала параметр --use-compress-program, заставляющий macOS tar передать архив другой программе. Поскольку tar в этой цепочке запускается с правами root, та же программа получает максимальные привилегии. В демонстрации исследователи создали правило sudo без пароля и открыли root-оболочку.
Какие версии затронуты
В консультативном сообщении JFrog затронутыми названы версии ниже 27.0.0. Компания отдельно предупредила, что не проводила регрессионное тестирование всех старых сборок: в зоне риска следует считать установки, где сохраняются шаблон распаковки InstallAppliance и доступный всем сокет диспетчера.
Последняя сборка ветки 26 — Parallels Desktop 26.4.2, build 57518, выпущенная 8 сентября 2026 года. JFrog указывает, что хосты на 26.x, включая 26.4.2, не получили нужного изменения в механизме распаковки. Parallels публично не сообщала, будет ли исправление перенесено в эту ветку.
Для 27-й ветки есть расхождение в датах: JFrog связывает выпуск исправления с 27.0.0, а журнал Parallels датирует 27.0.0 25 августа, а 27.0.1, build 58670, — 1 сентября 2026 года. Установка 27.0.1 покрывает оба варианта, но недоступна для Intel Mac.
Что проверить администраторам
JFrog не сообщает об известных атаках с использованием этой уязвимости. Однако исходным условием может стать любой код, уже запущенный от имени обычного пользователя: вредоносная формула Homebrew, скомпрометированный npm-скрипт или задача сборки.
Версию продукта можно посмотреть командой defaults read "/Applications/Parallels Desktop.app/Contents/Info" CFBundleShortVersionString, а права сокета — командой ls -l /var/run/prl_disp_service.socket. Сокет вида srwxrwxrwx на сборке около 26.4.0 JFrog рекомендует считать признаком потенциальной подверженности до подтверждения патча.
Организациям стоит учесть все Mac с Parallels Desktop, ограничить круг пользователей с локальным входом и проверить правила обновления в MDM. Parallels предупреждает, что попытка автоматически развернуть версию 27 на Intel Mac завершится неудачей. Также обновление не обязательно удалит уже закрепившийся доступ: получивший root атакующий может использовать launchd для сохранения присутствия в системе.
Практический вывод для бизнеса: разделите парк по архитектуре процессора, срочно обновите совместимые Apple silicon Mac до подтверждённо исправленной ветки и применяйте компенсирующие ограничения к Intel-системам, пока Parallels не объявит решение для 26.x.

