Mistral Vibe 曝六个命令权限绕过漏洞:四个 CVSS 10.0 可静默执行任意命令

2026 年 9 月 11 日,安全厂商 HiddenLayer 以 CNA 身份披露 Mistral 旗下命令行编程智能体 Mistral Vibe 的六个漏洞,编号为 CVE-2026-87983 至 CVE-2026-87988。其中四个按 CVSS 4.0 评为满分 10.0,另外两个分别为 9.3 与 9.2。六个漏洞全部位于同一层:决定某条 shell 命令是否可以不经用户确认直接执行的授权模块。攻击者可借此让 Vibe 在工作站上静默执行任意命令、读取或写入任意文件。

事件概述

Mistral Vibe 是 Mistral 推出的终端编程智能体,以 Apache 2.0 许可发布,通过 PyPI、官方安装脚本、uv 或 pip 分发,运行在开发者本机并继承该账户权限。它内置 shell 执行工具,部分调用被设计为自动批准、不弹确认框。六个 CVE 由同一位研究员 Esteban Tonglet 报告,隐蔽战线并不涉及大模型本身,而是模型外层的授权代码:字符串解析、手工维护的白名单、路径规范化。

技术细节

共用机制可以概括为一句话:Vibe 用 tree-sitter-bash 生成语法树,再据此重建一份命令表示,并基于这份表示做授权判断;而 shell 最终执行的是原始字符串。只要重建过程中丢掉了 shell 仍会保留的元素,判断对象就与实际执行内容不一致。六条路径中有五条属于此类,第六条来自两份内部清单之间的缺口。

  • CVE-2026-87983(9.2,CWE-22):路径中的引号被保留,以引号开头的绝对路径不再被判为绝对路径,读取绝对路径文件时不会触发确认。
  • CVE-2026-87984(9.3,CWE-22):shell 重定向的目标未被提取,可写入任意文件。
  • CVE-2026-87985(10.0,CWE-184):ANSI-C 引号参数未被收集,find-exec 断言在判断视图中消失,形成代码执行。
  • CVE-2026-87986(10.0,CWE-228):解析器无法读取的语法被挂到错误节点,未解析片段不参与检查,命令照旧执行。
  • CVE-2026-87987(10.0,CWE-15):命令前的环境变量赋值在判断阶段被剥离。把赋值语句接在允许列表命令之前,检查看到的只是该命令本身,shell 却按完整环境变量执行。
  • CVE-2026-87988(10.0,CWE-732):31 个自动批准命令未纳入路径校验清单,其中部分命令可通过自身参数写出文件。

影响评估

CVSS 4.0 向量为 AV:N/AC:L/AT:N/PR:N/UI:N,无需权限、无需交互。实际风险取决于智能体能接触到的内容:一旦被诱导处理恶意仓库、恶意 issue 或提示注入内容,攻击者即可借 Vibe 的账户权限在开发机上执行命令,进而窃取源码、云凭据与 SSH 私钥。值得注意的是,六个漏洞都不涉及提示词越狱,普通代码缺陷已足够绕过”是否允许执行”这一最后的用户确认关口。

修复建议

截至发稿,厂商尚未给出统一的修复版本,官方安全公告与 HiddenLayer 建议仍以缓解为主:

  • 暂停使用自动批准模式,改为所有命令逐条确认;无法逐条确认时应暂停部署或将其放入一次性容器;
  • 以最小权限账户运行 Vibe,禁止其读取生产凭据、云密钥与 SSH 私钥目录;
  • 不要把来源不明的仓库、压缩包直接交给智能体处理,处理前先检查其中的脚本与配置;
  • 通过 pip 或 uv 跟踪 mistral-vibe 版本更新,第一时间升级到带修复的版本;
  • 在终端审计层面记录智能体进程派生的子进程,重点看 find -exec 与命令前缀环境变量等高危组合。

参考来源