CVE-2026-90894 PUBLISHED

Parallels Desktop local privilege escalation via appliance extract argument injection

Assigner: JFROG
Reserved: 14.09.2026 Published: 14.09.2026 Updated: 14.09.2026

Parallels Desktop runs prl_disp_service as root. Local clients reach it on the world-writable socket /var/run/prl_disp_service.socket. PrlSrv_LoginLocal accepts peer credentials. No Parallels signature. No admin group.

After login, PrlSrv_InstallAppliance lets you pick the appliance folder (sVmParentPath). The daemon unpacks with one string, tar -xf "%1" -C "%2", then Qt QProcess::splitCommand chops that string into words. A quote in the folder name closes early. The leftover text becomes extra tar flags. macOS tar --use-compress-program= runs the named program as root.

Metrics

CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 7.8

Product Status

Vendor Parallels
Product Parallels Desktop for Mac
Versions Default: unknown
  • Version 26.4.0 is affected
  • Version 27.0.1 is unaffected

Exploits

JFrog has a private proof of concept that obtains root on Parallels Desktop 26.4.0. The same proof of concept does not obtain root on 27.0.1. Public exploit details are not included in this record.

Solutions

Upgrade to Parallels Desktop 27.0.1 or later.

Credits

  • Yuval Moravchick | JFrog finder

References

Problem Types

  • CWE-88 Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') CWE
  • CWE-78 Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') CWE
  • CWE-269 Improper Privilege Management CWE