brig 沙箱漏洞:项目目录中的符号链接会暴露宿主机目录
2026 年 9 月的安全公告显示,被沙箱隔离的编码智能体可以植入符号链接,而沙箱运行器随后会在宿主机上跟随该链接。已在 brig 0.3.0 中修复。
这是什么?
brig 是一个用 Go 编写的开源工具,用于在沙箱中运行 AI 编码智能体,并提供 microVM 模式以实现硬件级隔离,使智能体只能看到分配给它的项目。2026 年 9 月 26 日,维护者发布了安全公告 GHSA-wp6x-29qx-fpr7,Endor Labs 也在 2026 年 9 月 28 日的文章中描述了这一发现。该漏洞是 brig 挂载项目目录时的符号链接遍历问题。本文总结的是已公开且已修复的研究,并不介绍新的攻击方法。
工作原理
brig 会校验工作区挂载,但把项目路径未经解析就传给容器运行时,运行时随后在沙箱之外的宿主机上解析该路径。由于智能体对项目拥有读写权限,它可以把某个子目录替换为指向宿主机其他目录的符号链接。此时并不会发生任何事情。只有当操作者之后针对该子目录运行 brig 时,宿主机侧的运行时才会跟随链接,并把目标目录以读写方式挂载进沙箱。
作者将其归类为链接跟随问题(CWE-59),brig 扮演了“被混淆的代理”(confused deputy)角色。他们明确指出,这不是虚拟机监控器或客户机内核逃逸:隔离层本身是完好的,问题在于路径处理把不该交给沙箱的内容交了出去。在运行摘要中,项目一行显示的是用户输入的路径,而不是解析后的实际目录,因此操作者看不到这种重定向。
为什么重要
可被访问的位置取决于运行 brig 的用户权限,可能包括 SSH 密钥、云凭据和其他项目。公告将其评为高危(CVSS 8.2),因为影响范围发生了变化:本应约束智能体的沙箱触达了宿主机数据。它也体现了今年秋季编码智能体工具中的一个普遍规律:沙箱边界的强度取决于准备它的代码,而智能体可写入的文件对这些代码而言是不可信输入。
防御措施
- 升级到 brig 0.3.0。修复方案逐级打开项目路径,拒绝用户可写的首个目录以下的符号链接,校验每个已打开的条目,并在运行摘要中显示解析后的目录。
- 如果无法升级,请在运行前先解析完整的项目路径(例如使用
pwd -P),并传入真实目录。 - 检查路径的每一个组成部分,而不仅仅是最后一级;链接可能出现在任何层级。
- 当特权工具之后读取沙箱可写的目录时,应将其视为可能受攻击者影响。
- 以专用的低权限用户运行沙箱启动器,以便在挂载错误时尽量减少暴露范围。
- 不要把凭据放在可能被隔离工作流重定向到的主目录中。
Status
| 项目 | 详情 |
|---|---|
| 产品 | brig(github.com/brig-sh/brig) |
| 受影响版本 | 0.3.0 之前 |
| 修复版本 | 0.3.0 |
| 公告发布 | 2026 年 9 月 26 日(GHSA-wp6x-29qx-fpr7) |
| 研究文章 | 2026 年 9 月 28 日(Endor Labs) |
| 严重程度 | 高危,CVSS 3.1 评分 8.2 |
| CVE | 公告发布时尚未分配 |