Copilot 过目的 PR 仍把 CI 注入放进生产

转述 Wiz 对 Snowflake 公开仓的负责任披露:工作流脚本注入存活五日;GHAS 与 Copilot 审阅未拦住,强调 AI 辅助也要门禁。

Copilot 过目的 PR 仍把 CI 注入放进生产

Wiz 在 Red Agent / Snowflake CI-CD 案例 里写:其自治安全研究 Agent 在 Snowflake 公开仓发现严重 GitHub Actions 脚本注入;2026-06-23 披露当日即修补并轮换凭证。2026-08-17 更新澄清:Copilot 作为合入 PR 的共同审阅方标了 all-clear,却未指出关键漏洞;该改动是否由 AI 生成并不清楚。

作者CodePass 技术编辑

出了什么问题(机制层)

相关 workflow 在 issues: opened 时把 issue 标题拼进 shell。更安全的 env: + jq --arg 写法被换成直接插值;对 issue 事件上的「防护 if」因 pull_request 恒为 null 而形同虚设。GitHub Advanced Security 扫到了最终含漏洞的工作流文件,却未标出注入。结果:任意可开 issue 的人理论上能在 runner 里执行命令;PoC 期间曾触及 Jira 只读凭证。Snowflake 审计称暴露窗内无第三方滥用,Wiz 测试数据已删。

对用 Copilot / Autofix 的团队

  • AI 审阅与 Autofix 不能替代「工作流不许直接插值不可信输入」的硬规则。
  • 合并前对 .github/workflows 做专门静态规则:禁止 run: 内嵌 ${{ github.event.* }} 用户可控字段。
  • 短命凭证、最小权限、公开仓 issue 触发的作业默认无密钥。
  • 攻防两侧都在用 Agent:发现窗从周级压到日级,补丁 SLA 要跟上。

本文不提供复现步骤或载荷。只把公开结论收成门禁清单:人和机器审过的 PR,仍可能把危险模式重新引入 CI。