Full Report
Parallels Desktop for Mac has a flaw that lets an ordinary local account run code as root, the highest level of access on a Mac, software company JFrog said this week. The attack needs code already running on the machine as a normal user, so it does not work over the network. JFrog says the fix is in Parallels Desktop 27, a version that Intel Macs cannot install. Yuval Moravchick, who leads
Analysis Summary
# Vulnerability: Parallels Desktop "ParaShells" Local Privilege Escalation
## CVE Details
- **CVE ID**: CVE-2026-90894
- **CVSS Score**: 7.8 (High)
- **CWE**: CWE-77 (Improper Neutralization of Special Elements used in a Command - 'Command Injection') / Argument Injection
## Affected Systems
- **Products**: Parallels Desktop for Mac
- **Versions**: All versions prior to 27.0.0 (specifically tested on 26.4.0, build 57513).
- **Configurations**: Standard installation where the `prl_disp_service` background service is running. The vulnerability primarily affects Apple Silicon (M-series) Macs, as the fix is unavailable for Intel-based Macs.
## Vulnerability Description
The vulnerability, dubbed **ParaShells**, exists in the `prl_disp_service` background process, which runs with root privileges to handle networking and VM appliance unpacking.
The service listens on a **world-writable socket**, allowing any local user (even non-admins) to connect. When installing a VM appliance, the service constructs a shell command using `tar -xf "%1" -C "%2"`. Because the service uses `QProcess::splitCommand` and fails to properly sanitize the directory path (`%2`) provided by the user, an attacker can inject a double quote to terminate the path argument and append additional `tar` flags. Specifically, by using the `--use-compress-program` flag, an attacker can force `tar` to execute an arbitrary script or binary with root privileges.
## Exploitation
- **Status**: PoC available (demonstrated by JFrog); no confirmed exploitation in the wild.
- **Complexity**: Low
- **Attack Vector**: Local (Requires pre-existing access to a non-privileged account).
## Impact
- **Confidentiality**: High (Full access to all files on the Mac host).
- **Integrity**: High (Ability to modify system files, install rootkits, or change sudoers rules).
- **Availability**: High (Ability to shut down or crash the host system).
## Remediation
### Patches
- **Parallels Desktop 27.0.0 / 27.0.1 (Build 58670)**: These versions contain the fix.
- **Note**: Version 27 is only compatible with **Apple Silicon Macs**. Intel-based Macs currently lack a supported upgrade path to a fixed version based on the available data.
### Workarounds
- No official vendor workaround provided.
- **Mitigation**: Restrict access to the machine to trusted users only. Monitor for suspicious activity originating from the `prl_disp_service` or unexpected modifications to `/etc/sudoers`.
## Detection
- **Indicators of Compromise**:
- Unusual child processes spawned by `prl_disp_service`.
- Logs showing `tar` being executed with the `--use-compress-program` flag.
- Unexpected modifications to system security configurations or binaries.
- **Detection methods**: Audit local socket permissions and monitor process execution chains using macOS Endpoint Security Framework (ESF) tools.
## References
- **JFrog Advisory**: hxxps[://]research[.]jfrog[.]com/vulnerabilities/parallels-desktop-is-vulnerable-to-a-local-privilege-escalation-via-appliance-extract-argument-injection-cve-2026-90894/
- **JFrog Technical Blog**: hxxps[://]jfrog[.]com/blog/parallels-desktop-turns-appliance-install-into-root-shell/
- **Parallels Release Notes**: hxxps[://]kb[.]parallels[.]com/en/131168
- **CVE Record**: hxxps[://]www[.]cve[.]org/CVERecord?id=CVE-2026-90894