系统:运行中
← 返回所有攻击
AGENTS CRITICAL NEW

Amazon Q 自动执行仓库的 MCP 配置,泄露开发者云凭证

Wiz 于 2026 年 6 月 26 日披露:Amazon Q Developer 会在无需同意的情况下自动从仓库配置文件启动 MCP 服务器,打开恶意项目即可执行代码并窃取云凭证。

2026-07-02 // 5 min affects: amazon-q-developer, claude-code, cursor, windsurf

这是什么?

2026 年 6 月 26 日,Wiz Research 发布了一篇分析报告,披露 Amazon 的 AI 编码助手 Amazon Q Developer 中的一个高危漏洞。只要开发者打开项目文件夹并激活 Amazon Q,该扩展就会自动加载并启动打开项目中某个文件(.amazonq/mcp.json)里定义的 Model Context Protocol(MCP)服务器——没有提示、没有征求同意、也没有工作区信任检查。由于 MCP 服务器是助手启动的本地进程,且这些进程会继承开发者的完整环境,打开一个被做过手脚的仓库便可能以开发者当前的云会话身份执行任意代码。随后 The Hacker News 进行了报道,Amazon 也发布了安全公告 2026-047-AWS

该漏洞由 Wiz 的 Maor Dokhanian 负责任地报告:4 月 17 日发现,4 月 20 日报告给 Amazon,5 月 12 日修复,6 月 26 日公开披露——远超协调披露窗口,且补丁已部署。AWS 表示尚无已知的公开利用。

工作原理

问题在于信任边界的混淆,而非某个巧妙的攻击载荷。当你在 IDE 中打开项目文件夹时,你隐含地信任了数十个声明式配置文件——它们描述行为,而不执行代码。MCP 配置打破了这一假设:一条 MCP 条目会指定一个要运行的命令。

一份良性的 MCP 配置看起来平平无奇——一个 command、它的 args,以及一个合法数据库或构建工具会用到的 env 块。Amazon Q 会直接从工作区根目录读取该文件并启动其中列出的服务器,而此时开发者甚至还没有审阅过一行代码。两个设计选择叠加,使情况变得危险:

  • 未经同意的自动执行。 配置在打开文件夹时即被加载,没有对话框、没有信任检查:仓库中由攻击者控制的文本会自动变成一个正在运行的进程。
  • 完整的环境继承。 被启动的进程会获得开发者的完整环境——云访问密钥、CLI 会话令牌、API 机密、SSH 代理套接字——因此运行的任何东西都握有开发者的活动凭证。

这里不复现任何可用的攻击载荷;其机制是结构性的。在概念验证中,Wiz 只是让被启动的命令读取当前云身份并将结果发送到外部服务器,证明一个位于已克隆仓库中的文件就能从「git clone」演变为云环境沦陷。同一个补丁还修复了另一个相关问题:一处缺失的符号链接检查,可在工作区边界之外写入文件——与编码代理中的符号链接批准 RCE 属于同一类问题。

为何重要

驱动 Amazon Q 的运行时分发于 VS Code、JetBrains、Eclipse 和 Visual Studio,因此任何捆绑了旧版本的插件都受影响。前提是开发者的日常习惯:克隆一个陌生项目——一个诱人的合并请求、一个仿冒名称的软件包,或一次假招聘面试中发来的「编码测试」——然后打开它。这使其成为一条可信的供应链路径,与 Agentjacking 以及编码代理的身份与凭证鸿沟属于同一家族:不可信的仓库内容变成一条以所有者权限执行的命令。

尤为关键的是,这并非某一家厂商的失误。Wiz 等已在整个生态中记录到相同的形态——Claude Code、Cursor 和 Windsurf 各自都出现过项目级 MCP 配置以略有不同的路径演变为命令执行。随仓库携带、悄然配置 AI 代理的配置文件,是一种系统性反模式,而非孤立缺陷。

防御措施

持久的修复之道,是把任何可能存在于仓库中的文件都视为不可信输入,并在其能够执行代码之前要求明确同意。

  1. 先更新。 Amazon 已在 Language Servers for AWS 1.65.0 中修复该漏洞;AWS 公告建议升级到 1.69.0,其中也包含符号链接修复。除非网络受阻,语言服务器会自动更新——重新加载 IDE 即可拉取最新版本。已修复的最低插件版本:VS Code 2.20、JetBrains 4.3、Eclipse 2.7.4、Visual Studio 工具包 1.94.0.0。
  2. 让 MCP 服务器经过同意确认。 从工作区配置加载 MCP 服务器应始终弹出提示。当助手标记某个不可信的 MCP 服务器时,先阅读命令再允许,并拒绝任何非你自己添加的内容。
  3. 精简环境。 子进程只应获得所需的最小环境,绝不给予完整集合。让云密钥以及 ~/.ssh / ~/.aws 处于代理所启动进程的可及范围之外。
  4. 对陌生仓库保持怀疑。 打开项目前检查是否存在意料之外的 .amazonq/(或等效的代理配置)文件夹,且切勿在无人监督下让代理指向某个 fork 的合并请求。
  5. 启用工作区信任。 使用 IDE 的工作区信任功能,让不可信的文件夹无法自动执行扩展行为。

状态

项目参考日期说明
自动执行漏洞CVE-2026-12957 (CVSS 8.5)2026-06-26 披露Amazon Q 无需同意即加载工作区 MCP 配置
符号链接写入漏洞CVE-2026-129582026-06-26 披露缺失符号链接检查;同一版本修复
修复版本Language Servers for AWS 1.65.0(AWS 建议 1.69.0)2026-05-12 补丁发布除非网络受阻否则自动更新
发现者Maor Dokhanian,Wiz Research2026-04-17 → 2026-06-26协调披露;尚无已知公开利用
同类问题Claude Code、Cursor、Windsurf2025–2026项目级 MCP 配置 → 命令执行

诚实的表述不是「某个 AI 工具出了 bug」——而是随仓库携带、用于配置 AI 代理的配置本身就是可执行输入,将其转化为进程必须经过明确的人工同意。在代理默认锁定这一交接之前,防御在你手中:打补丁、要求 MCP 服务器经过同意、精简环境,并把任何陌生仓库都当作不可信代码来对待。

Sources