GitLab 于 8 月 26 日发布了 19.3.1 版本补丁。其中一项修复涉及 CVE-2026-18252,被描述为“Duo Claude AI agent 中的来自不可信控制域的功能纳入问题,影响 GitLab EE。”这是本周披露的最具启发性的 AI agent 漏洞,但人们很可能会对它作出错误描述。
实际出了什么问题
GitLab 自己的表述是:公司“已修复一个问题,在特定条件下,具有开发者角色权限的已认证用户可能会在 CI 场景中执行任意命令,原因是 Claude agent 处理了来自用户可控来源的配置。”该 agent 从开发者可以写入的地方读取配置。无论那份配置要求它做什么,它都会照做——在 CI 内部,并使用 CI 的凭据。
常见说法哪里错了
凡是涉及 LLM 和命令执行的事情,通常都会被归类为提示注入或越狱——也就是把模型从其安全护栏里“劝出来”。但这两者都不是。这是一个典型的信任边界错误,和从不可信路径读取构建脚本属于同一类漏洞;即便读取该配置的组件里根本没有模型,它也会以完全相同的形式存在。这个区别对修复很重要:提示注入依靠模型层防护来缓解,而这类防护具有概率性且并不完整;而这里的修复方式是不从可写位置读取配置。GitLab 采取了第二种方式,这才是正确做法,把它称作 AI 安全失败会掩盖其修复具有确定性这一点。
是谁给出的评分,以及这为何值得注意
该漏洞评级为 7.3 High,对应向量 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N。GitLab 本身就是自己的 CNA,因此这一评分是该公司对自身缺陷的评估,而且是在技术细节仍处于保密期时发布的。这个向量在内部逻辑上是自洽的——需要低权限、需要用户交互、没有可用性影响——没有理由怀疑它是错误的。但在 GitLab 公布该问题之前,独立分析师无法核实这一点,通常要等到补丁发布后约 30 天。在此之前,一个广泛部署的 CI 平台中的 agent 漏洞严重性,完全取决于平台方的一纸说法。
现在该怎么做
受影响版本为 GitLab EE 18.9 早于 19.1.7、19.2 早于 19.2.5 以及 19.3 早于 19.3.1。该漏洞由 GitLab 的 HackerOne 项目报告。触发前提是拥有开发者角色账户;在大多数组织中,这并不算高门槛——它是编写代码的任何人的标准权限级别。运行 Duo 且启用了 Claude agent 的自托管实例,应将此视为此次发布中的优先事项。
