Docker 于 2026 年 9 月 15 日披露 Docker Sandboxes 在 macOS 平台上的两个安全漏洞,其中 CVE-2026-77179 被评级为严重,CVSS 评分 9.4。沙箱虚拟机内的恶意代码可借由 virtio-fs 主机服务端对符号链接的处理缺陷,跨出授权的共享项目目录,以运行虚拟机的主机账户权限读写主机上任意位置的文件。修复已在 9 月 7 日发布的 Sandboxes 0.42.0 中提供。
事件概述
Docker Sandboxes 为 AI 编程智能体分配轻量虚拟机,让智能体在隔离环境中执行代码与安装依赖,只把项目目录按需暴露进沙箱。其安全模型把虚拟机与虚拟机监控程序之间的边界视为隔离控制的真正边界,智能体在虚拟机内部拥有包括 sudo 在内的完整权限。
CVE-2026-77179 影响 macOS 平台 0.28.0 至 0.42.0 之前的版本;CVE-2026-79994 被评级为高危,CVSS 8.7,影响 0.37.0 至 0.42.0 之前的版本。两个漏洞均在 0.42.0 中修复,截至 9 月 17 日最新版本为 9 月 15 日发布的 0.43.0。
技术细节:两个符号链接引发的越界
CVE-2026-77179 位于负责 macOS 主机与沙箱之间文件共享的 virtio-fs 主机服务端。该组件在通过先前保存的路径名重新打开已删除文件时会跟随符号链接。
- 沙箱内恶意进程可在原路径被接受后,把某父目录替换为指向工作区外的符号链接;
- 当主机随后复用保存的路径执行文件操作时,该操作会被重定向到授权工作区之外的位置;
- 逃逸以虚拟机监控程序的主机账户权限执行,可读写该账户可访问的任意主机文件;
- 结合可修改文件的内容,此类访问有可能被转化为主机侧代码执行。
CVE-2026-79994 位于允许沙箱访问工作区内 Unix 域套接字的中继组件,属于检查与使用时点不一致问题。中继先校验套接字路径位于工作区内,随后建立连接时再次使用该路径名;若恶意 guest 在两次操作之间把某个中间目录替换为符号链接,主机就会连接到工作区之外的 AF_UNIX 套接字。两个漏洞的共同点在于:在攻击者可影响的环境中,安全决策作出后仍信任了一个可被改变含义的路径名。这一风险被共享工作区的方式放大——sbx run 默认以读写权限挂载当前目录,而 Git 钩子与项目脚本都可能影响后续在主机侧发生的开发动作。
影响评估
漏洞需要沙箱内先存在恶意代码才能触发,但这并不削弱其严重程度。Sandboxes 的定位正是承载智能体从受损仓库、恶意依赖或被操纵指令中遇到的不可信代码;若这些代码能改变主机可见的文件系统路径,虚拟机这层隔离边界就在主机执行后续文件操作时失效。
Docker 表示未观测到两个漏洞的利用,CISA 评估同样显示无在野利用记录,两漏洞均未被纳入已知被利用漏洞目录。CVE-2026-77179 由 accomplish.ai 的 Oren Yomtov 发现,CVE-2026-79994 由 ThreatNotify 的 Jurre van Bergen 发现。另有一点:Docker 在 0.42.0 发布八天后才公开公告,发布说明未提及这两个 CVE。
修复建议
- 升级到 0.42.0 或更高版本:官方推荐的根本修复手段,建议直接更新到最新正式版本;
- 无法立即升级时改用克隆模式:clone 模式把仓库以只读方式挂载到 /run/sandbox/source,已有沙箱需删除后带 –clone 重建;
- 克隆模式不是机密性边界:它只能防止仓库被修改,.env 等未跟踪文件仍可被智能体读取。