Claude Cowork 沙箱逃逸链分析:DLL 侧加载到 root 权限的完整攻击路径

Claude Cowork 的沙箱架构

Claude Cowork 是 Anthropic 在 Claude Desktop for Windows 中推出的功能模块,让非技术用户也能安全地自动化日常任务。它的底层实现是在 Hyper-V 隔离的 Ubuntu 虚拟机中运行 Claude Code,通过多层防御来限制风险。

这套沙箱架构的防御层包括:

防御层作用
Authenticode 签名验证管控谁可以通过命名管道与 VM 通信
Bubblewrap 命名空间限制进程的文件系统可见范围
每会话非特权用户每次会话创建无 sudo 权限的独立用户
Seccomp 过滤限制可调用的系统调用
域名白名单出站代理限制网络访问范围

设计目标是即使 VM 内部某个组件被攻破,也无法执行任意代码。安全研究员 Armadin 对这套端到端防御进行了完整攻击测试。

第一步:DLL 侧加载绕过签名验证

整个沙箱的核心是 ,一个运行在 Local System 权限下的服务,通过命名管道暴露 JSON 格式的 RPC 接口与 VM 通信。

连接验证依赖 Authenticode 签名检查,绑定 Anthropic 的证书。Armadin 尝试了签名克隆和构建替代信任链两种方式,都没能突破这道检查。

突破口是 DLL 侧加载(DLL sideloading)。 在解析 时会优先从自身应用程序目录加载,找不到才回退到系统副本。在 同目录放一个导出了预期函数的恶意 DLL,就能在一个合法签名的 Anthropic 进程内执行任意代码。

claude.exe 加载 USERENV.dll 的逆向分析

这个合法签名的进程满足命名管道的签名验证要求,攻击者获得了一个通过认证的 RPC 通道。

第二步:滥用 spawn 接口的未过滤参数

从 DLL 侧加载获得立足点后,Armadin 借助 AI 编程助手逆向了未公开的 RPC 协议,通过服务日志、错误消息和定向 fuzz 摆弄出了 、、 等方法的用法。

对 方法参数的 fuzz 发现了两个未做任何过滤的字段。

isResume 参数:设计用途是复用已有会话,而非创建新的非特权用户。将 设为 并指定一个已存在的用户名(如 ),会绕过通常阻止针对已有账户的检查,返回一个拥有完整 root 权限和全部 Linux capabilities 的 shell。

allowedDomains 参数:设计用途是限定单条命令的网络访问范围。将 设为通配符,出站代理的域名白名单彻底失效,原本返回 403 的流量全部放行。

第三步:nsenter 跳出 Bubblewrap 沙箱

拿到 root 权限后,关键问题是如何逃出 bubblewrap 命名空间隔离。

Bubblewrap 的设计意图是让容器内进程看不到宿主进程。但 PID 1(init 进程)在 bubblewrap 命名空间内仍然可见。这个可见性成为了实际逃逸路径。

使用 工具挂载 PID 1,攻击者可以进入底层 VM 的 mount、process、network 等所有命名空间,获得对宿主 VM 的无限制访问。

完整攻击链示意图

一条请求完成全链攻击

将上述两个参数组合到同一条 spawn 请求中,Armadin 实现了一步完成完整攻击链:以 root 身份运行、逃出沙箱、将 内容外传到外部服务器。这构成对隔离模型的完整攻破。

攻击链在 Claude Desktop for Windows 1.9255.2.0 版本上验证通过。

Anthropic 的回应

Armadin 于 2026 年 3 月 20 日向 Anthropic 报告了这个问题。Anthropic 在 3 月 24 日回复,将整条攻击链归类为"不构成安全问题",理由是利用前提是攻击者已在主机上拥有本地代码执行能力。

这个分类逻辑有争议空间。DLL 侧加载确实需要攻击者先在主机上获得一定程度的代码执行权限,但 Claude Cowork 的沙箱设计目标本身就包括限制已执行代码的影响范围。攻击链展示了即使在这种前提条件下,沙箱的多层防御仍然可以被逐步穿透。

缓解措施

Armadin 建议的缓解方案:

第一,不需要 Cowork 功能的系统直接卸载 Claude Desktop,彻底移除命名管道和易受攻击的服务。

第二,必须使用 Cowork 的系统,通过 AppLocker 打包应用规则限制可运行该程序的账户范围,缩小 DLL 侧加载载荷的潜在目标面。

第三,检测层面,监控 的 DLL 加载事件,重点关从标准系统目录之外加载的常见滥用桩库,能在变体被利用前提供高信号预警。

更广泛的安全视角

这次披露反映了 Anthropic 编码工具今年暴露的一系列沙箱和权限执行问题。类似的隔离缺陷也在 Claude Code 的配置处理和拒绝列表逻辑中被发现。

AI 生产力工具越来越多地在非技术用户的日常环境中嵌入本地虚拟机,引入了许多组织尚未准备好监控的攻击面和可见性盲区。沙箱隔离的设计强度与 AI 工具的部署范围之间存在张力:工具越易用、面向的用户越非技术化,沙箱被绕过的潜在影响就越大。

相关推荐