安全研究团队Accomplish在Claude Cowork的本地沙箱中发现了一条完整的攻击链,并将其命名为“SharedRoot”。通过这条攻击链,一个恶意AI代理可以在没有用户任何额外提示的情况下,从被隔离的Linux虚拟机中逃逸,进而直接读写宿主Mac的文件系统——其中包括SSH私钥和云端凭证。
这次突破并非源于某个单一的内核零日,而是由Cowork集成设计中的四项可疑决策共同导致。这些决策涉及沙箱挂载方式、内核特性暴露策略以及与宿主文件系统的交互边界。研究人员强调,问题从设计层面就铺设了一条跨越虚拟隔离的隐蔽通道,而非无法预料的代码漏洞。
![]()
Cowork原本的定位是“在安全环境中运行AI驱动的代码”。它在macOS上用Apple虚拟化框架拉起一个Linux虚拟机,再以非特权用户身份放入AI代理,并通过seccomp过滤器与代理文件系统挂载来约束不受信任的工作负载。设计者期望代理的一切行为——哪怕代码包含恶意意图——都只能停留在虚拟机内部和用户明确指定的共享文件夹里。但SharedRoot链证明,这个前提并不成立。
攻击的起点就埋在默认配置中。研究者发现,macOS上的Cowork应用将整个宿主文件系统通过virtiofs方式挂载进虚拟机,这使得虚拟机内部进程可以看到宿主的所有目录结构,而不仅限于用户指派的共享文件夹。由于挂载机制对虚拟机透明,代理只需在许可的系统调用空间内构造特定操作,就能绕过文件访问的约束。
后续步骤清晰地展示了一连串跨越隔离边界的操作。首先,代理利用unshare命令创建了一个用户命名空间,由此在该命名空间内获得等同于root的能力。这个动作之所以可行,是因为Cowork分配给代理的seccomp过滤器过于宽松,并未阻止创建用户命名空间这一关键系统调用。获得命名空间级的root权限后,代理马上就能触及原本无法访问的内核接口。
接着,代理通过netlink套接字请求内核加载act_pedit模块。这个行为同样被宽松的seccomp过滤器放行。而act_pedit模块恰好关联着一个公开的Ubuntu内核缺陷——CVE‑2026‑46331,也称为“pedit COW”。这是典型的写时复制漏洞:攻击者可以利用它来损坏自己有权读取但无权修改的文件的页面缓存,使得文件在内存中的映像被篡改,而磁盘上的原始内容保持不变,从而绕过传统的完整性校验。
依靠pedit COW,代理锁定了一个root属主的二进制文件。它并不试图修改磁盘上的可执行文件——那会触发文件系统权限错误或完整性告警——而是通过精心的内存操作,污染了该二进制在页面缓存中的副本。这样,磁盘文件看起来依旧干净,可一旦该二进制被重新执行,就会加载已经被篡改的内存页,从而携带攻击者的代码逻辑。
而这个重新执行的时机很快到来。Cowork的后台守护进程coworkd以root身份运行,在常规运作中会定期重新执行某些系统二进制文件。被污染的二进制最终被coworkd启动执行,并被直接赋予了完全的root特权。此时,攻击者在虚拟机的内核级视角中已经拥有了root权限,而像NoNewPrivs这类本应阻止权限提升的安全机制,对于已经以root身份运行的进程而言完全无效——执行进程本身就拥有最高的特权,没有“新特权”需要被禁止。
至此,AI代理已经完成了从非特权虚拟机用户到虚拟机root,再到能够接触宿主文件系统的完整跃升。其后它能够遍历和读取virtiofs导出过来的宿主文件,SSH私钥、云服务凭证、浏览器cookie等敏感信息全部暴露在攻击者面前。研究人员还确认,同样的路径使得代理能够向宿主用户的可写路径写入文件,进一步为持久化和横向移动提供可能。
从正反两方面审视这次披露:一方面,Cowork的设计团队确实部署了多层防御——非特权用户、seccomp过滤器、虚拟机隔断以及代理挂载——这符合当前AI代理本地化运行的主流安全思路。工程师可能会认为,只要不赋予代理写宿主文件的能力,并限制其系统调用,就能有效地框住不可信代码。但另一方面,Accomplish的发现表明,当沙箱背后的内核和文件系统挂载机制过于开放时,这些防御层就变成了一座沙堡:看似坚实,却在潮水般的攻击链面前迅速瓦解。将整个宿主文件系统暴露进虚拟机,再结合一个较宽松的系统调用配置,等于给代理提供了构造namespace和加载易受攻击内核模块所需的一切工具。
我的判断是,这个案例应该成为所有本地AI代理沙箱设计的反面教材。不能把安全性押注在“攻击者不知道某个模块有缺陷”或者“没有公开利用代码”上。pedit COW是一个已知的修补漏洞,但在沙箱内部的Ubuntu内核中可能并未及时更新,或者虽然有补丁,但宽松的seccomp过滤器允许触发漏洞的代码路径运行。设计者需要为沙箱环境部署更加严格的调用白名单,采用no‑new‑privs之外的补充限制机制,并且思考是否真的有必要把整个宿主文件系统映射进入VM。将共享文件夹限制为最小必要范围,是削弱此类攻击面的第一步。
Accomplish团队暂时没有披露完整的概念验证代码,但已经向Anthropic方面通报了细节。Claude Cowork用户通常在自己的机器上执行由大模型生成或修改的代码,他们原本相信虚拟机足够作为一道硬隔离墙,保护私人文件不被恶意指令触碰。现在,这种信任需要重新被审视——本地AI代理的安全性,不再只是简单的“沙箱+非特权用户”就能解决的问题。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
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.