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

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