{"id":"CVE-2026-90894","state":"PUBLISHED","title":"Parallels Desktop local privilege escalation via appliance extract argument injection","description":"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.\n\n\n\nAfter 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.","publishedAt":"2026-09-14T09:52:43.570Z","updatedAt":"2026-09-15T08:49:26.122Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"JFROG"},"assigner":"JFROG","products":["Parallels Parallels Desktop for Mac"],"affected":[{"vendor":"Parallels","product":"Parallels Desktop for Mac","packageName":"Parallels Desktop","defaultStatus":"unknown","versions":[{"version":"26.4.0","status":"affected"},{"version":"27.0.0","status":"unaffected"}],"platforms":["macOS"]}],"references":["https://www.parallels.com/products/desktop/","https://kb.parallels.com/en/131168"],"weaknesses":["CWE-88","CWE-78","CWE-269"],"ingestedAt":"2026-10-29T20:13:34.582Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/90xxx/CVE-2026-90894.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-90894","state":"PUBLISHED","datePublished":"2026-09-14T09:52:43.570Z","dateUpdated":"2026-09-15T08:49:26.122Z","assignerShortName":"JFROG","assignerOrgId":"48a46f29-ae42-4e1d-90dd-c1676c1e5e6d","dateReserved":"2026-09-14T09:33:11.942Z"},"containers":{"cna":{"title":"Parallels Desktop local privilege escalation via appliance extract argument injection","descriptions":[{"lang":"en","value":"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.\n\n\n\nAfter 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."}],"affected":[{"vendor":"Parallels","product":"Parallels Desktop for Mac","packageName":"Parallels Desktop","defaultStatus":"unknown","versions":[{"version":"26.4.0","status":"affected"},{"version":"27.0.0","status":"unaffected"}],"platforms":["macOS"]}],"references":[{"url":"https://www.parallels.com/products/desktop/","name":"Parallels Desktop for Mac","tags":["product"]},{"url":"https://kb.parallels.com/en/131168","name":"Parallels Desktop 27 updates summary","tags":["release-notes"]}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV3_1":{"version":"3.1","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseSeverity":"HIGH","baseScore":7.8,"vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-88","lang":"en","description":"CWE-88 Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-78","lang":"en","description":"CWE-78 Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-269","lang":"en","description":"CWE-269 Improper Privilege Management","type":"CWE"}]}],"providerMetadata":{"shortName":"JFROG","orgId":"48a46f29-ae42-4e1d-90dd-c1676c1e5e6d","dateUpdated":"2026-09-15T08:49:26.122Z"},"solutions":[{"lang":"en","value":"Upgrade to Parallels Desktop 27.0.0 or later.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>Upgrade to Parallels Desktop 27.0.0 or later.</p>"}]}],"exploits":[{"lang":"en","value":"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.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>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.</p>"}]}],"credits":[{"lang":"en","value":"Yuval Moravchick | JFrog","type":"finder"}],"source":{"discovery":"EXTERNAL"},"x_generator":{"engine":"Vulnogram 1.0.4"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-09-14T10:23:23.018106Z","id":"CVE-2026-90894","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-14T10:23:46.541Z"}}]}}}