← 返回藏书阁

Docker socket 沙箱旁路:真正的边界包括被委托的宿主 daemon

wiki/ai/sources/pillar-docker-socket-sandbox-trust-handoff.md
分类:ai / sources · 更新:2026-09-10 09:10

Docker socket 沙箱旁路:真正的边界包括被委托的宿主 daemon

结论与知识点轴

sandbox-security / harness-runtime / benchmark-evaluation;关联 MCP Gateway 的旁路治理。 限制 agent 自身的文件写权限,不代表限制了它能联系的高权限 daemon。若 agent 可把操作交给边界外的 Docker daemon,后者可能执行 agent 本来不能完成的宿主操作。

这是 Harness-Engineering 的信任交接问题,不需要假设发生 kernel exploit。对用户的 macOS coding-agent 工作流,耐久问题是:哪些本地服务可以被 agent 借用,其权限是否被纳入执行策略? 本文没有检查用户的 Docker 安装、socket 权限或 sandbox 配置,不能判定本机受影响。

来源与验证边界

  • Pillar 原始研究,2026-07-20。此前 09-08 原文读取失败,本轮直接 HTTPS 抓取成功并完整阅读。
  • Cursor 官方 GHSA-v4xv-rqh3-w9mc,关联 CVE-2026-73218;API 返回 severity high、affected <3.0.0。公告于 2026-07-14 发布、2026-08-11 更新。
  • 已归档研究原文和官方 advisory JSON;未播放/验证 PoC 视频,未执行任何容器、挂载、宿主写入或逃逸测试
  • 公告 patched_versions 字段为空;不要据 affected range 单独推导已验证的最小修复版本。研究者称 Cursor 已修复,实际采用仍需核对产品 release 和配置。

一阶原理:进程边界不等于权限闭包

沙箱拦截的是受约束进程能发出的操作;daemon 在自己的身份和权限下处理请求。若进程能访问 daemon API,后者的高权限能力就间接进入 agent 的可达范围。有效风险面不仅包含直接 syscalls,还包含可请求的代理执行、宿主共享及后续消费 agent 输出的进程

研究描述的条件链是:受限 agent 能联系 Docker Desktop → daemon 可启动高权限工作负载 → Docker VM 的宿主文件共享通道可能提供边界外文件访问。这里即便最外层采用 deny-default,仍可能在跨进程、跨 VM 的信任交接处失效。

注意,socket 文件“存在/可读”并不自动等于可调用;真实权限还受连接规则、Unix socket 访问控制、daemon 配置及宿主共享范围影响。应验证连接和代理执行能力,不能凭文件路径就判定逃逸。

多方响应为什么不能混写

对象已读证据能说什么 / 不能说什么
Cursor官方公告 + 研究报告公告明确 macOS、Auto-Run Sandbox、Docker Desktop 和 Dev Containers CLI 前提;可以记录为有官方确认的条件性问题
Codex研究者对厂商回应的转述涉及 network/socket 显式允许与配置相关范围;未独立核对其当前实现,不能宣称今天所有 Codex 默认可逃逸
Gemini CLI研究者转述厂商认定为文档已说明风险是威胁模型边界之争,不等于官方确认同一 CVE,也不代表无风险

研究中的通用脚本、厂商公告的产品前提并非完全同一组条件。入库应保存各自作用域,不能用一个“通杀三个 agent”的标题覆盖具体配置差异。

对 Hermes / agentic coding 的可执行启发

以下为后续自有环境评估方案,不是今天已加固:

  1. 建立 daemon 清单:Docker、构建服务、浏览器控制、语言服务器和其他带宿主权限的本地 API;记录 caller、服务身份、入口和可写范围。
  2. 将网络策略拆开:互联网 egress、内网服务、loopback、Unix-domain socket 是不同权限类别;允许取依赖不等于允许任意宿主 daemon。
  3. 单独隔离构建:确需构建容器时,优先使用无宿主敏感凭据、无广泛 home 共享的专用 worker;不要假设“进了容器”就自动安全。
  4. 用安全 canary 验收:由操作者在隔离环境验证 policy 拒绝与结果状态,不在日常机器上运行论文 PoC,也不把恶意源码装进 agent 的常用 skill。
  5. 保存 trust handoff:不仅记录 agent 发出了什么命令,还记录哪个外部进程接手、最终动作落在哪里。

与既有知识的关系

边界与未解问题

  • 换用 gVisor、容器或 microVM 不能无条件解决被允许的高权限 API;先界定可委托的能力再选择隔离技术。
  • 不在本轮改动 Hermes 配置、不停止 Docker、不调整系统网络,也不把文中配置当当前产品命令指南。
  • 后续应检查允许 daemon 的正常任务效用与最小权限成本,而不是以全面禁用工具换取安全表面分数。

写入记录

  • 2026-09-10 09:06 CST:补回此前抓取失败的 Pillar 原文,交叉核对 Cursor 官方 advisory;提炼 daemon trust handoff、配置前提和厂商回应差异,未执行 PoC。