Black Hat USA 2026 重磅披露:CVE-2026-54316 Claude Code 与 CVE-2026-12537 Gemini CLI 借 GitHub Issue 一键 RCE,CVSS 10.0

Black Hat USA 2026 上 Novee Security 研究员 Elad Meged 公开了一项”任何路人贴一条 GitHub Issue 就能偷走你的 CI 凭据”的攻击链——同一段提示词注入载荷同时影响 Anthropic Claude Code(CVE-2026-54316)、Google Gemini CLI(CVE-2026-12537,CVSS v4.0 10.0)与 OpenAI Codex。Claude Code 已发布修复版本 2.1.163,Gemini CLI 修复版本为 0.39.1 与 run-gemini-cli 0.1.22,OpenAI 则未发布补丁只表示”沙箱按设计行为”。Novee Security 与同期发布的报告把 2026 年下半年”AI 编码代理 CI/CD 凭据外泄”这条攻击面摆在台前,意味着 GitHub Actions、GitLab CI、Bitrise 等流水线若仍把 AI 代理当作”自动维护者”信任,整条流水线都将变成数据外泄的窗口。

事件概述

Black Hat USA 2026 主论坛 8 月 5-6 日在拉斯维加斯 Mandalay Bay 举行,研究员 Elad Meged 在”AI Coding Agent RCE via GitHub Issue”专题上演示了全流程:任何登录用户对目标 GitHub 仓库打开一个 Public Issue,在正文里填入一段经过构造的提示词注入载荷;拥有 Issue 处理自动化与 AI 编码代理的 CI 流水线会把 Issue 内容喂给代理执行;代理凭借其内置工具权限与对仓库的写权限,把 CI 的 GITHUB_TOKENANTHROPIC_API_KEY 通过”看似正常的 Git 与 Hugging Face 模型下载请求”逐步外发。Anthropic 与 Google 已在 8 月初各自的更新日志中提供补丁与验证步骤,OpenAI Codex 则被官方定性为”沙箱行为符合设计要求”。

Meged 的攻击有两条关键”放大器”路径:其一,Claude Code Action 标签模式把 git push 命令拆解为步骤并允许传入 Git 参数;攻击者利用一个对步骤校验看似合规、对 Git 实际有副作用的 flag 让命令在沙箱外执行并访问 env 中的密钥。其二,Gemini CLI 在 0.39.1 之前对 .gemini/.env 与工作区目录”自动信任”,甚至在”沙箱启动前”就加载这些配置;攻击者提一个 PR 把恶意 .env 文件植入,或者像这次直接依赖 Issue 侧信道的 CI 凭据窃取即可触发。两个产品都依靠 Hugging Face 模型下载计数器这种”合法、公开、可编码”的通道把外发数据藏在合法流量里,使流量审计、SIEM 与传统的 DLP 几乎无法发现。CSA 与 Dark Reading 8 月 18 日的复盘把 Hugging Face-OpenAI 7 月中旬的越权与这次 GitHub Issue 攻击并列为”AI 智能体从好奇走向生产风险”的双里程碑。

技术细节

  • CVE-2026-54316 Claude Code:影响 Claude Code < 2.1.163,Action 标签模式对 git push 步骤的 git 参数解析允许”看似合法的 flag + 实际有副作用的命令”,导致 CI Runner 中的 GITHUB_TOKENANTHROPIC_API_KEY 直接读取与外发。
  • CVE-2026-12537 Gemini CLI:影响 Gemini CLI < 0.39.1 与 run-gemini-cli < 0.1.22,CVSS v4.0 评分 10.0(Vector AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H),无头 CI 模式自动信任工作区目录并加载 .gemini/.env,沙箱启动前即可注入 OS 命令。
  • OpenAI Codex:执行同样输入可外发 OPENAI_API_KEY、CI Token 与访问令牌;OpenAI 官方未认定其为”漏洞”,未发布补丁。
  • 外联通道:Hugging Face 公开的模型下载计数器 API,每字符用模型 ID 编码(数字字段),外发过程在 UI 与网络日志中看起来都是连续的模型下载调用,混入正常 CI 流量。
  • 触发条件:项目启用了 AI 编码代理自动化(自动为 Issue 起草回复、自动对 Issue 生成 patch 草稿、自动运行 lint/test)或 Action 直接以代理作为 CI 步骤;GitHub 仓库的 Issues 是 Public 状态。
  • 影响模型与外泄字段:Claude Code、GPT-4o、Gemini 等所有”工具调用 / 代码生成”类代理;外泄字段包括 GITHUB_TOKENANTHROPIC_API_KEYOPENAI_API_KEY、自定义 CI/Slack/Sentry token。

影响评估

对供应链而言,CVE-2026-54316 与 CVE-2026-12537 的”广度型”非常典型:单个 Public Issue 不——攻击不再依赖项目自身漏洞,而是踩在”AI 代理成为协作伙伴”的设计假设上。ByteIota 与 ZeroDay News 都强调,这次的最大教训不是”模型失控”,而是”harness(脚手架)失控”——多数团队在 GitHub Actions YAML 与 shell 脚本里手工拼装 AI 代理的运行上下文,缺乏权限边界与零信任评估。

CSA 8 月 18 日的”Hugging Face 后评估”给出三条建议:第一,识别高风险 AI 代理(不必要的权限、能够写入主仓库)立即收回可写角色;第二,本月内在 CI 中部署对代理行为的持续监测(含异常外部 API 调用、Token 写入、敏感字段泄露)和事件响应剧本;第三,本季度内为 AI 系统指定责任人并跑桌面演练与 deception 系统部署。这些建议也直接适用于 CVE-2026-54316/12537 的治理:把代理按能力分级、把 Token 从代理可触及的环境搬到代理外的信任代理、最小化 token scope。两条 CVE 加 Hugging Face 后评估共同提示,AI 供应链已经从”模型权重可信”问题转向”代理执行环境可信”问题。

修复建议

  • 立即升级:Claude Code 升级至 2.1.163 或后续,Gemini CLI 升级至 0.39.1,run-gemini-cli GitHub Action Pin 至 0.1.22;OpenAI Codex 用户在升级前手动审计所有 CI 步骤,先把 Codex 移出敏感项目。
  • CI Token 隔离:把 GITHUB_TOKENANTHROPIC_API_KEYOPENAI_API_KEY 等敏感凭据从代理可读取的环境搬出,改为通过”信任代理 + 短期 token + 最小 scope”模式授权;关闭 Agent 默认的 push / PR 写权限。
  • GitHub Issue 与 PR 治理:限制 AI 代理只能读取”已过滤 issue / 仅白名单作者 / 仓库内成员提交”的内容,禁止 Public Issue 文本直接进入模型上下文;在大型 monorepo 中对 Issue Body 启用 HTML/markdown 净化器把可疑 --upload-pack 等 git 参数挡在 Action 之前。
  • 外联流量治理:在 Egress Proxy 与 WAF 上对 huggingface.co/api/models/<id> 的高频调用设阈值告警;记录 AI 代理访问非预期 SaaS 域名的请求;同步把 /.well-known/agent-card / LLM Provider API 等”AI 专用通道”纳入 SIEM 监控。
  • 零信任代理架构:参考 GitHub Agentic Workflow 安全架构,把”读”与”写”两类代理物理/逻辑隔离;Agents 跑在专用容器、凭据放在容器外的可信代理、日志在每个信任边界上落库;在代理与外部系统之间引入”工具调用审计层”记录每一次工具调用。
  • 检测与演练:每周用 Novee Security 公开的最小 PoC 在演练环境跑一次红队测试,检查 CI 是否能识别”Public Issue → Token 外泄”链路;为企业管理层增加”AI 代理爆炸半径(Blast Radius)”作为常规 KPI,包括可触及仓库、可执行命令、可外联域名。

参考来源