Claude Cowork SharedRoot沙箱逃逸:Mac本地AI代理虚拟机越狱原理、检测脚本与加固方案
一、事件概述50万台Mac暴露的本地AI隔离失效风险2026年7月安全厂商Accomplish AI公开披露代号SharedRoot的高危攻击链。攻击者通过构造提示词诱导Claude Cowork本地执行代码依托Linux内核漏洞完成虚拟机内权限提升借助Anthropic内置的VirtioFS全盘挂载通道直接读写Mac宿主机全部文件。受影响预估约50万启用本地执行模式的Mac用户。大量开发者存在认知误区该攻击不是传统Hypervisor虚拟机逃逸。代码始终运行在AVF框架创建的Linux虚拟机内部没有直接调用macOS原生系统调用。隔离防线崩溃的核心诱因是架构设计缺陷而非Apple虚拟化框架存在漏洞。Anthropic收到漏洞报告后将报告标记为信息性Informative拒绝为本地执行分支推送针对性补丁。新版Claude Desktop调整默认策略Cowork会话默认切换云端运行用户手动开启本地模式风险持续存在。窃取目标高度集中~/.ssh私钥、云服务商凭证、Kubeconfig、项目.env密钥、浏览器本地缓存、个人文档。整个攻击流程无弹窗授权提示普通用户无法感知文件被遍历读取。二、Claude Cowork macOS原生虚拟化安全架构2.1 官方预设隔离模型Mac宿主机运行Claude Desktop客户端依托**Apple Virtualization FrameworkAVF**启动ARM64架构轻量级Linux一次性虚拟机。所有AI自动执行、代码运行操作被约束在Guest虚拟机内部。官方设计三层防护权限隔离AI会话进程在虚拟机内以普通非特权用户运行系统调用限制Seccomp BPF过滤器拦截高危内核调用文件隔离仅挂载用户手动授权的项目文件夹预期禁止访问宿主机其他目录。宿主机coworkd守护进程以root权限管理VirtioFS文件共享负责宿主机与虚拟机之间文件数据转发。2.2 致命隐藏配置全盘宿主机文件系统挂载架构设计的核心缺陷除用户手动授权目录外虚拟机内部预置隐藏挂载点/mnt/.virtiofs-root该路径完整映射Mac宿主机根目录/读写权限等同于Mac当前登录用户。挂载权限被限制为仅虚拟机内root用户可访问。Anthropic内部将该挂载通道用于组件通信开发阶段未评估权限提升攻击场景。一旦攻击者拿到虚拟机Guest-Root权限隔离边界直接失效。2.3 Mermaid架构图可直接渲染VirtioFS共享正常访问提权至Guest-Root后访问双向读写macOS HostClaude Desktop客户端coworkd Root守护进程AVF创建Linux Guest虚拟机Cowork会话非特权用户进程用户授权目录/mnt/project隐藏全盘挂载/mnt/.virtiofs-root ⇔ Mac /三、SharedRoot完整攻击链路逐环节拆解整条攻击链由Linux原生特性 内核本地提权漏洞 不合理文件共享配置串联。不需要远程网络入侵前提条件Mac安装Claude Desktop用户手动启用Cowork本地执行模式用户绑定至少一个本地文件夹用户粘贴/接收恶意提示词诱导AI执行shell代码。3.1 步骤1非特权进程创建用户命名空间会话普通用户调用unshare()生成独立usernetwork命名空间。该操作不依赖漏洞属于Linux原生特性。unshare--user--map-root-user--net进程在命名空间内部获得虚拟root身份同时拿到关键能力CAP_NET_ADMIN。Seccomp过滤器存在宽松策略未拦截unshare系统调用攻击链获得启动基础。3.2 步骤2通过Netlink触发act_pedit模块自动加载具备CAP_NET_ADMIN后攻击者通过Netlink套接字配置流量控制规则强制内核加载act_pedit数据包编辑模块。tc qdiscadddev lo root handle1: prio tc filteradddev lo parent1: protocolipu32 match u3200action pedit munge offset0u8 0x00act_pedit是后续内核漏洞触发的前置依赖。3.3 步骤3CVE-2026-46331 Pedit COW本地提权原理漏洞位于Linux内核net/sched/act_pedit.c影响5.18 ~ 7.1-rc7版本内核属于Copy-On-Write机制缺陷。内核计算可写skb缓冲区范围仅执行一次无法识别运行时动态解析的数据包偏移。部分写入区域不会生成私有副本攻击者实现越界写入共享页缓存。攻击效果篡改内存中setuid特权二进制镜像不修改磁盘文件绕过文件完整性检测。最终将虚拟机普通会话用户提升为虚拟机内部真正rootGuest-Root。重要区分权限提升范围仅限Linux虚拟机内部无法直接突破AVF虚拟化层执行macOS程序。3.4 步骤4访问隐藏挂载点实现跨沙箱文件读写拿到Guest-Root权限后直接操作路径# 读取Mac宿主机ssh私钥cat/mnt/.virtiofs-root/Users/$USER/.ssh/id_rsa# 遍历用户所有文档目录ls/mnt/.virtiofs-root/Users/$USER/Documents# 窃取云服务商凭证cat/mnt/.virtiofs-root/Users/$USER/.aws/credentialsVirtioFS通道不触发macOS权限弹窗文件读写行为在宿主机侧无明显告警日志。3.5 Mermaid攻击流程时序图恶意Prompt输入ClaudeVM内非特权进程执行unshare获取CAP_NET_ADMIN能力tc规则加载act_pedit内核模块触发CVE-2026-46331页缓存篡改权限提升至VM Guest-Root访问/mnt/.virtiofs-root全盘挂载点读取Mac宿主机所有文件四、高频认知误区澄清❌ 误区漏洞属于Apple Virtualization Framework逃逸漏洞✅ 事实AVF虚拟化隔离机制完好。漏洞根源是Anthropic主动将宿主机全盘以读写模式挂载进虚拟机。更换任意虚拟机方案只要存在同等挂载配置风险完全一致。❌ 误区黑客能远程主动入侵Mac设备✅ 事实攻击必须人机交互触发。需要用户打开Cowork本地会话接收恶意提示词。无法通过互联网主动扫描入侵终端。❌ 误区拿到Guest-Root就可以运行Mac原生程序✅ 事实虚拟机是独立Linux系统仅能读写文件。无法直接执行Mach-O二进制、调用macOS系统API。攻击者只能窃取文件不能直接植入Mac恶意程序。❌ 误区升级Claude客户端可以彻底修复本地模式风险✅ 事实官方没有修复挂载逻辑只是修改默认执行模式。用户主动切回本地执行风险原样保留。五、本地环境检测脚本Mac宿主机可直接运行脚本功能识别当前Claude运行模式、检索虚拟机挂载痕迹、检查高风险密钥文件是否暴露输出风险等级。使用方式保存为check_cowork_risk.sh终端执行bash check_cowork_risk.sh#!/bin/bash# SharedRoot漏洞风险检测脚本 MacOSset-euopipefailecho Claude Cowork SharedRoot风险检测 CLAUDE_PLIST$HOME/Library/Application Support/Claude/config.json# 检测Cowork执行模式if[-f$CLAUDE_PLIST];thenecho[1] 读取Cowork配置MODE$(jq-r.cowork.executionMode // unknown$CLAUDE_PLIST)echo当前执行模式:$MODEif[$MODElocal];thenecho⚠️ 风险警告当前启用本地虚拟机模式存在SharedRoot攻击面elseecho✅ 当前为云端模式无本地虚拟机逃逸风险fielseecho[1] 未找到Claude配置文件可能未安装Claude Desktopfi# 检测高危敏感文件echo-e\n[2] 检测本地敏感凭据文件SECRET_LIST($HOME/.ssh/id_rsa$HOME/.aws/credentials$HOME/.kube/config)forfin${SECRET_LIST[]};doif[-f$f];thenecho⚠️ 存在敏感文件$f本地模式下存在被窃取风险fidone# 检索虚拟机进程echo-e\n[3] 检索AVF虚拟机进程pgrep-fVirtualization.VirtualMachine/dev/nullif[$?-eq0];thenecho⚠️ 后台正在运行Linux虚拟机实例elseecho✅ 当前无Claude Cowork虚拟机运行fiecho-e\n[检测完成] 建议非必要不开启Cowork本地执行模式六、分层加固方案个人终端企业运维两套标准6.1 普通Mac用户加固优先级从高到低优先使用云端Cowork模式。打开Claude设置将Cowork执行模式切换为Cloud确需本地执行时仅创建空白独立文件夹授权禁止授权Home根目录、.ssh、.aws单次任务结束立刻关闭Cowork会话不要长期保持虚拟机后台运行不要在会话中粘贴来源不明、包含大量晦涩shell代码的提示词定期轮换SSH私钥、云平台访问密钥怀疑遭遇攻击立即销毁旧凭证。6.2 开发者/企业终端深度加固6.2.1 Linux虚拟机内核层面缓解手段适用于自研AI沙箱场景# 禁用非特权用户命名空间阻断攻击链第一步sysctl-wkernel.unprivileged_userns_clone0# 永久生效配置echokernel.unprivileged_userns_clone 0/etc/sysctl.confsysctl-p# 黑名单act_pedit内核模块echoinstall act_pedit /bin/false/etc/modprobe.d/blacklist-pedit.conf update-initramfs-u6.2.2 VirtioFS安全部署规范所有本地VM文件共享场景通用禁止挂载宿主机根目录仅挂载业务所需最小目录优先使用只读模式挂载项目目录virtiofsd启动参数增加沙箱隔离--seccompon --sandboxchroot禁止虚拟机内root自动访问共享文件。6.2.3 Seccomp策略优化范本基础原则由黑名单策略改为白名单策略直接拦截unshare、clone3、netlink套接字创建从源头切断攻击链路。七、延伸思考本地Agentic AI沙箱架构通用缺陷SharedRoot漏洞不是孤立事件它暴露当下本地运行AI Agent普遍存在的设计矛盾。产品团队为追求便捷性不断放宽隔离边界。厂商默认假设虚拟机内部不会出现权限提升漏洞。但Linux内核本地提权漏洞持续稳定产出。只要存在一条通往Guest-Root的路径配合不受管控的文件共享通道沙箱隔离等同于形同虚设。两套可行的安全架构方向零共享文件模型文件数据经由RPC接口中转不使用VirtioFS/SMB等原生文件共享协议能力隔离模型虚拟机内进程即便提升至root也无法访问跨宿主机共享资源很多AI桌面客户端选择折中方案默认云端执行本地模式作为高级选项并显著提示安全风险这也是Anthropic当前选择。八、行业前瞻性结论随着本地代码执行AI工具普及文件共享通道逃逸会成为高频攻击向量。传统虚拟机隔离思路已经无法适配AI自主执行多步骤任务的场景。安全从业者不能继续依赖“虚拟机天然安全”的惯性思维。评估AI沙箱安全性需要建立全新标准权限提升攻击面清单宿主机与虚拟机数据交换通道最小权限审计攻击链串联风险建模不能单独评估单个漏洞漏洞响应预案区分“可修复缺陷”与“架构硬风险”。企业落地本地AI开发助手应当建立专项准入规范。不允许员工无限制开启本地虚拟机执行模式重点管控具备文件读写、代码执行能力的Agent功能。九、互动提问你日常使用Claude Cowork本地模式还是云端模式是否留意过文件共享权限范围如果需要在Mac本地部署可运行代码的AI助手你认为什么样的沙箱架构才能平衡易用性与安全性

相关新闻