一个为了消灭漏洞的补丁,反而抹掉了防御墙
2026年8月17日,网络安全公司 Wiz 披露了一起针对数据公司 Snowflake 的越权访问事件。数据巨头 Snowflake 内部使用的 Jira 系统被成功攻破,内部工程记录与安全合规项目被暴露在外。让人意想不到的是,给黑客打开这扇大门的关键角色,正是微软旗下的 AI 编程助手 GitHub Copilot Autofix。
在 2026 年 6 月 18 日合入的一份代码提交中,AI 编程助手参与并审核了一项关于自动化工作流的修复。代码审查机制给这份提交打上了安全通过的标记,然而 AI 却在修改过程中替换了原本防范命令注入的安全结构。这一改动直接摧毁了原有的安全边界,让原本用于修复问题的补丁变成了暴露系统凭证的陷阱。
防线在静默中失效:看似完美的安全开关
要在自动化脚本中处理用户提交的标题,必须严格隔离数据与指令。原作者在项目中使用了环境变量和结构化解析工具 jq --arg 来传递数据,这种写法确保了参数不会被脚本解释器当成命令执行。然而在 AI 自动修复的 PR #1218 中,AI 缺乏对这种历史上下文的理解,将这段安全的解析代码替换为了直接的字符串内联插值 TITLE=$(echo '${{ github.event.issue.title }}' | sed ...)。
图:AI 自动审查 pull request 的示意图。来源:Unsplash / El Solitario
在 GitHub Actions 的运行机制中,表达式展开发生在 Bash 解释器读取命令之前。只要用户提交的标题中包含单引号 ',就能轻松突破单引号包裹的语法边界,从而在操作系统镜像中执行任意系统指令。即使 sed 试图对字符串进行过滤,转义操作也已经在 Shell 语法树被破坏之后发生,防护措施完全形同虚设。
更糟糕的是,工作流中的身份防御条件本身存在严重的逻辑缺陷。原代码试图通过比较 github.event.pull_request.user.login 来过滤特定机器人的操作,但在由工单触发的事件中,拉取请求对象恒等于空值 null。访问空对象的属性会导致条件判断静默失效并默认放行,静态代码分析工具彻底错失了拦截漏洞的机会。
AI黑客的自我修正:从语法报错到5秒抓取凭证
漏洞在代码库中潜伏了仅仅 5 天。2026 年 6 月 23 日,运行在 Snowflake 漏洞赏金项目中的自主安全代理 Wiz Red Agent 自动扫描并定位了这一高危接口。与传统自动化脚本不同,这个 AI 代理展示出了惊人的工程推理能力和自我纠错能力。
在第一次攻击尝试中,Red Agent 试图利用井号 # 注释掉后续的命令,但多余的闭合括号引发了 Bash 语法解析错误。面对执行失败的报错信息,AI 代理没有放弃,而是立即分析报错日志并重新调整了攻击载荷,改用分号 ; echo ' 来闭合语法树。第二次尝试在数秒内获得成功,包含 Jira 凭证、邮箱地址和系统 URL 的敏感数据被迅速编码外带至指定的测试服务器。
泄露的令牌允许攻击者以测试账号身份登录 Snowflake 的 Atlassian 平台,直接调阅内部工程架构与合规缺陷报告。虽然 Snowflake 团队在收到负责任披露后于当天紧急合并 PR #1402 修复了漏洞并轮换凭证,审计也确认 Wiz 是唯一的访问者,但这次攻防实战展现了极其严峻的对抗态势。
图:终端执行注入命令的示意图。来源:Unsplash / El Solitario
既生产漏洞又寻找漏洞:AI自动化的安全死角
根据官方统计,Copilot Autofix 已经帮助开发者修复了超过 46 万条安全告警。这说明 AI 自动化实现在规模化补丁修复上效率惊人,但在缺乏深层上下文的复杂场景中,潜藏的盲区同样会被按比例放大。当企业盲目信任 AI 打上的安全标签时,防线就已经出现了裂痕。
云安全联盟 CSA 在 2026 年 5 月和 8 月的报告中相继指出,包括 CodeRabbit、Cursor 以及 Gemini CLI 在内的 AI 代理已经深度接入基础设施管线,其中部分工具甚至被曝光过 CVSS 10.0 的最高危漏洞。这说明当 AI 代理被授予代码合并与部署权限时,其安全性直接决定了整个软件供应链的生死。
在真实的开发生态中,开源代码库中充斥着不规范的自动化脚本模板,AI 大模型在训练阶段吸收了大量存在缺陷的示例。当开发者使用 AI 生成或审查代码时,模型倾向于产出符合模式匹配规则但缺乏防护意识的通用代码。静态分析工具难以识别空值放行等业务逻辑漏洞,使得防线在层层自动化中悄然失守。
人类审查者不能成为唯一的接盘人
Snowflake 的这起安全事件揭示了一个深刻的新现实:AI 编码助手在修补漏洞时悄悄抹掉了前人防范注入的安全结构,而 AI 安全代理在同一周内便完成了漏洞的自动探测与利用。AI 既在自动化生产漏洞,又在自动化消费漏洞,人类审查环节反而成了整个管线中唯一没有被自动化的孤岛。
当攻防两端同时接入 AI,安全防护的竞争不再是编写代码的速度比拼,而是对系统历史上下文和边界条件的掌控力比拼。必须为 AI 代理建立严格的语法防护护栏,禁止其用简单的字符串插值替换结构化解析器。如果人类审查者只是习惯性地为 AI 生成的补丁点击同意,那么 CI/CD 管线的安全账本将变得无法承载。
参考链接:
- Wiz 官方安全分析报告:Snowflake 内部 Jira 凭证泄露事件
- HackerOne 漏洞赏金项目披露记录
- Hacker News 社区技术讨论
- 云安全联盟 (CSA) AI Agent 自动化安全研究报告