返回

文章详情

AI生成的GitHub Copilot“Autofix”允许Snowflake的Jira被妥协

Hacker News2026年8月17日 14:18

作为Snowflake的HackerOne漏洞披露计划下进行的持续安全研究的一部分,Wiz Research的“红色代理”——一种自主的、由AI驱动的安全研究工具——在Snowflake的一个公共存储库中识别出一个关键的GitHub Actions工作流漏洞。该事件突显了软件开发中迅速显现的现实:AI编码助手如何在不经意间引入工作流注入漏洞,以及自动AI代理如何能够迅速在真实环境中发现这些漏洞。Wiz于2026年6月23日进行了负责任的披露,Snowflake在同一天修复了该漏洞,旋转了受影响的凭证,并通过详细的审计日志确认Wiz是曝光窗口期间的唯一参与者。Wiz确认在概念验证测试期间访问的所有数据均已安全删除。 执行摘要:Wiz红色代理在snowflakedb/snowflake-connector-net中识别了一个脚本注入漏洞。该问题允许未经身份验证的用户通过打开带有特殊标题的GitHub问题在GitHub Actions运行器内执行任意命令。关键是,该漏洞是在2026年6月18日——发现前仅五天——通过由由AI支持的Copilot Autofix共同创作的提交引入的(PR #1218)。AI助手移除了存储库现有的输入模式,并用shell脚本中的直接字符串扩展替代。 展示访问Snowflake的Jira门户的截图,通过一个被提取的令牌 曝光过程 发现:Wiz红色代理的CI/CD能力扫描了Snowflake的GitHub组织,标记了snowflakedb/snowflake-connector-net中的jira_issue.yml工作流,该工作流因run:块中来自不受信的输入而易受脚本注入影响。[ AI助手(微软Copilot)更改 ]该工作流在问题打开时触发——这意味着任何GitHub用户都可以通过打开问题来触发它——并直接将攻击者控制的问题标题插入到shell脚本中:sed转义发生在GitHub的模板扩展之后,标题中的单引号打破了echo '...'并允许任意命令执行。可注入模式是在几天前的2026年6月18日引入的,提交4a1b8ce(PR #1218:“SNOW-2069227:更新jira工作流”)——由AI驱动的Copilot Autofix共同创作。引入易受攻击模式的提交 它移除了存储库现有的安全模式,该模式通过env:变量传递问题标题,并使用jq构建JSON有效载荷。相反,它使用了上面显示的直接${{ github.event.issue.title }}插值。换句话说,AI的“自动修复”提交创建了这个注入向量。引入易受攻击模式的代码更改 开启“安全门” 工作流有一个似乎保护的if条件:然而,在问题事件中,github.event.pull_request始终为null。因此,该条件简化为(null != 'whitesource-for-github-com[bot]')。这总是为真,每个GitHub用户都通过了安全门。 开启“安全门” 利用:我们设计了一个问题标题,在模板扩展后打破了echo字符串,并通过外部回调提取了Jira凭证:关键是,当红色代理的ci/cd能力最初试图使用标准注释字符(#)进行提取时,运行器返回了一个bash语法错误,因为注释消耗了TITLE=$(...)的闭合括号。红色代理没有停止或失败,而是自主分析了语法执行错误,调整其有效载荷以使用;echo'以正确关闭shell块,并成功接收外部回调。几秒钟内,我们的监听器从GitHub Actions运行器(Azure IP 20.106.182.197)收到包含base64编码凭证的回调。 问题标题中的有效负载POC PR 注意:我们第一次尝试使用#注释掉其余行,这导致了意外的EOF bash错误,因为它还消耗了TITLE=$(...)的闭合)。解决方法是使用;echo'来正确关闭shell语法。工作流日志显示成功利用 提取的令牌链接到qa@snowflake.net 被提取的令牌作为qa@snowflake.net身份验证以访问snowflakecomputing.atlassian.net,授权必要的只读访问Snowflake的工程、安全合规和漏洞奖励跟踪项目。 修复与取证 同日修补:Snowflake在2026年6月23日修补了工作流(1dc7766,PR #1402),完全恢复了安全的env:变量和jq --arg解析模式。 凭证撤销:相关的JIRA令牌已被撤销和替换。 取证验证:全面的审计日志分析证实在5天的曝光窗口期间没有外部第三方访问该端点。所有异常查询严格匹配Wiz的测试IP。 主要收获:AI代码生成需要严格监督:AI编码工具基于概率模式预测代码,这可能会导致意外的安全风险。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡