事件经过
Pillar Security(发布于 2026-10-11)披露了 google/gemini-cli 生态系统中一条可实际利用的代理型漏洞利用链:google-github-actions/auth@v2 在 CI 运行器上落盘一个明文 OIDC 凭证文件,而 run-gemini-cli WIF 设置脚本授予连接的服务账号项目范围的 iam.serviceAccountTokenCreator 角色。研究人员将一个恶意公共 GitHub issue 链接到自动化 CI 工作流中的命令执行,读取明文凭证文件,并利用它模拟其他服务账号,从而获得受影响 GCP 项目的 Editor 级访问权限。Google 确认了其推荐设置路径中的这一缺陷并已修复;这影响了在 GCP 中部署 Gemini CLI 工作流的可复用最佳实践设置代码。
影响分析
这是一条针对最广泛部署的 AI 编码代理之一的新颖、可实际利用的“代理执行到云沦陷”漏洞利用链。任何采用 Google 记录的用于 Gemini CLI 自动化的 WIF 设置并将工作流暴露给不受信任内容的组织,都引入了从攻击者控制的 issue 文本到广泛 GCP 权限提升的路径。它说明了防御者自身使用的 AI 编码代理工具链中真实存在的代理型供应链风险。
攻击途径
攻击者在某个仓库中打开一个恶意 GitHub issue,该仓库通过 run-gemini-cli 在 CI 中运行处理不受信任输入的 Gemini CLI;精心构造的 issue 内容引导代理在工作流运行器中执行命令,在那里读取由 google-github-actions/auth 以明文写入的 OIDC/WIF 凭证文件,然后利用设置脚本授予的项目级 iam.serviceAccountTokenCreator 权限(Google 已确认并修复的发现)来模拟其他服务账号并在 GCP 项目中获得 Editor 访问权限。
受影响系统
google/gemini-cli (@google/gemini-cli) 以及 Google 官方的 google-github-actions/run-gemini-cli GitHub Action 及其 Workload Identity Federation 设置脚本 (setup_workload_identity.sh)
缓解措施
遵循 Google 的安全公告和已修复的 run-gemini-cli 设置;撤销/重新创建由旧版 setup_workload_identity.sh 创建的过度宽泛的服务账号授权,将 iam.serviceAccountTokenCreator 限制为最小权限,轮换任何已暴露的 OIDC/云凭证,并将不受信任的 issue/PR 内容视为输入给 CI 代理的攻击者输入。参见 https://www.pillar.security/blog/a-wif-of-fresh-access-how-a-github-issue-on-gemini-cli-led-to-gcp-project-compromise