一个非管理员用户或非特权进程,就能以root权限执行攻击者控制的代码。这不是假设,是安全研究人员在Parallels Desktop上验证过的攻击路径。
漏洞编号CVE-2026-90894,被命名为“ParaShells”。研究团队在Apple Silicon芯片的Mac上,用Parallels Desktop 26.4.0 build 57513版本确认了它的存在。厂商随后在27.0.0版本中完成了修复。
![]()
这条攻击链的起点,是一个以root身份运行的后台服务。
被盯上的那个root服务
Parallels Desktop在Mac上跑虚拟机,靠的是一个叫prl_disp_service的特权守护进程。管理虚拟机、配置网络、安装应用包,这些敏感操作都由它来执行。
因为它以root权限运行,任何发给它的不安全请求,都可能变成通往系统完全沦陷的直通车。
研究人员发现,这个漏洞并不是单一缺陷,而是三个安全弱点叠加在一起的结果:
- 一个全局可写的Unix套接字
- 薄弱的本地客户端认证
- 应用包解压过程中的参数注入
三者单独拿出来,未必致命。串在一起,就成了一条完整的提权路径。
第一环:谁都能连上的套接字
默认安装状态下,prl_disp_service通过/var/run/prl_disp_service.socket监听请求。
JFrog的研究人员发现,这个套接字的权限可能是0777。这个数字意味着,本机上的任何进程都可以连接它。
连接只是第一步,接下来要过认证这一关。
第二环:认证只看“你是谁”,不看“谁签的你”
负责登录的PrlSrv_LoginLocal函数,判断依据是操作系统层面的对端凭证,而不是确认客户端是否由Parallels签名。
这个区别很关键。一个在标准用户账户下运行、完全没有签名的客户端,照样能认证成功。
认证通过之后,攻击者就可以调用PrlSrv_InstallAppliance操作,并传入一个精心构造的虚拟机父目录路径。
第三环:一个引号撬开tar
安装应用包时,服务会用攻击者可控的路径值拼出一条tar解压命令。这条命令通过Qt的QProcess::splitCommand函数拆分成参数。
攻击者只要在父路径里塞进一个引号,就能提前终止原本的引号范围,再注入一个额外的tar选项。
被注入的选项是--use-compress-program。它会让macOS的tar在处理归档文件时启动一个外部程序。由于prl_disp_service是以root身份启动tar的,这个由攻击者控制的程序,也就跟着以root权限跑了起来。
这里要区分清楚:这是参数注入,不是传统的shell命令注入。攻击者不需要用到shell元字符,因为他直接操纵的是传给tar的参数列表。
不需要虚拟机在运行
整个利用过程,不需要一台正在运行的虚拟机。
演示中验证过的条件只有三个:装好Parallels Desktop、那个特权服务和套接字处于活动状态、以及一个低权限的本地账户。
至于攻击可能从哪里来,研究人员列举了几种已经以标准用户身份执行的代码:恶意软件包、被攻陷的持续集成任务、被投毒的npm安装脚本、Homebrew formula,或者其他任何已经在普通用户权限下跑起来的东西。
拿到root之后能做什么
一旦利用成功,攻击者能做的事情包括:访问其他用户的文件、修改系统软件、安装持久
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.