ParaShells Vulnerability: Parallels Desktop Flaw Grants Root Access on macOS
A critical local privilege escalation vulnerability, dubbed 'ParaShells' by **JFrog**, has been identified in **Parallels Desktop for Mac**. This flaw, tracked as **CVE-2026-90894**, allows a low-privileged local account to execute arbitrary code with root privileges on the host macOS system, posing a significant risk to IT security professionals and privacy-conscious users.

Cybersecurity firm **JFrog** has disclosed a significant vulnerability in **Parallels Desktop for Mac** that enables a standard local user account to gain root-level access. This flaw, dubbed 'ParaShells' by **Yuval Moravchick**, who leads **JFrog**'s vulnerability research team, has been assigned **CVE-2026-90894** and carries a **CVSS** score of 7.8 out of 10.
### The Nature of the Flaw
**Parallels Desktop** is a popular virtualization solution for running Windows and Linux virtual machines on a Mac. The vulnerability resides within the macOS component of the product, specifically affecting the `prl_disp_service` background service, which runs with root privileges.
**JFrog**'s analysis revealed that the socket for this service was world-writable, allowing any local process on the Mac to connect to it. The `PrlSrv_LoginLocal` call, which handles login, only verifies kernel-reported credentials and does not require a **Parallels** code signature, enabling a non-administrative account to connect.
### Exploitation via Argument Injection
During the installation of a virtual machine appliance, the service constructs an unpack command as a single text string: `tar -xf "%1" -C "%2"`. A critical flaw in how this string is processed using **Qt**'s `QProcess::splitCommand` allows for argument injection.
An attacker can manipulate the folder name for the new virtual machine by inserting a double quote, which prematurely closes the quoting. This allows the attacker to append additional options to the `tar` command. **JFrog** demonstrated this by using the `--use-compress-program` option, instructing `tar` (which is running as root) to execute another program, thereby achieving root access.
**JFrog** successfully demonstrated this on **Parallels Desktop 26.4.0**, build 57513, on an Apple silicon Mac. The attack requires only a standard installation of **Parallels Desktop**, the service running, and a low-privileged local account; no virtual machine needs to be active.

### The Fix and Affected Versions
According to **JFrog**, the vulnerability is addressed in **Parallels Desktop 27.0.0** and later. However, there are discrepancies in the disclosure timeline provided by **JFrog** and **Parallels**' release notes. **JFrog**'s advisory lists all versions below 27.0.0 as affected, while **Parallels**' release notes for 27.0.0 and 27.0.1 (which shipped shortly after) do not explicitly mention this specific fix.
Crucially, **Parallels Desktop 27** requires a Mac with an Apple silicon chip and macOS Sonoma 14.7 or newer. This means that users on Intel-based Macs, who are advised to remain on **Parallels Desktop 26**, do not have access to the patched version. **JFrog** explicitly states that the 26.x line, including 26.4.2, does not include the necessary fix.
**Parallels** has not yet published an official statement regarding **CVE-2026-90894** or confirmed whether a fix will be backported to the **Parallels Desktop 26** series for Intel Macs.
### Checking for Exposure and Mitigation
Administrators and users can check their exposure using two simple commands in Terminal:
* `defaults read "/Applications/Parallels Desktop.app/Contents/Info" CFBundleShortVersionString` (to check the installed version)
* `ls -l /var/run/prl_disp_service.socket` (to check if the service socket is world-writable)
A socket displaying `srwxrwxrwx` on a **Parallels Desktop 26.4.0** build or similar should be considered exposed.
**JFrog** recommends limiting local login access to vulnerable machines and identifying all Macs running **Parallels Desktop** within an organization. It's important to note that a product update may not remove an attacker's persistent root-level foothold if they have already exploited the vulnerability, as they could establish persistence via `launchd`.
Organizations using device management to push updates should carefully review their version rules to prevent failed installations of **Parallels Desktop 27** on Intel Macs, which are incompatible with the newer version.