文章摘要
近期,安全研究团队发现新型提示注入攻击手段GitLost,可诱使GitHub的Agentic Workflows工具泄露企业私有仓库敏感数据。攻击者在公开Issue嵌入恶意指令就能绕过防护。GitHub虽有防护机制,但研究团队简单操作就能触发模型非预期行为。研究团队给出多项防御建议,多位专家也发表了看法。

近期,安全研究团队发现了一种新型的提示注入攻击手段——GitLost,该漏洞可以诱使GitHub推出的Agentic Workflows工具泄露企业私有仓库中的敏感数据。攻击者只需在公开的GitHub Issue中嵌入隐藏的恶意指令,就能绕过安全防护,诱导AI Agent在公开评论中泄露机密信息。

该漏洞由Noma Security团队首次发现,存在缺陷的GitHub Agentic Workflow被配置为在issues.assigned事件触发时自动运行:它会读取对应Issue的标题和正文内容,通过add-comment工具发布回复,并且被赋予了读取组织内所有仓库(包括公开和私有仓库)的权限。

值得注意的是,攻击者无需任何编程技能、访问权限或身份凭证,只需在配置了该工作流的组织的公开仓库中创建一个Issue,等待AI Agent自动处理即可完成整个攻击流程。

尽管GitHub已经部署了严格的防护机制来拦截这类提示注入攻击,但研究团队仅通过在恶意指令前添加“Additionally”这个简单的衔接词,就触发了模型的非预期行为。这一操作使得原本受限制的私有仓库文件内容被访问,并直接发布到了公开的评论中。

传统的安全模型通常假设信任边界由代码负责维护,但在Agentic系统中,信任边界部分依赖于模型的行为——而AI模型天生就具备遵循指令的特性。对于Agentic AI来说,提示注入攻击正在演变成类似Web应用中的SQL注入问题:一种系统性的、覆盖整个类别的漏洞类型,需要同样系统化的策略和防御措施来应对。

针对这类风险,研究团队给出了多项防御建议:

  • 绝对不能将用户可控的内容视为AI Agent的可信指令输入
  • Agent的权限必须严格限制在最小必要范围内,拥有跨仓库访问权限的Agent会成为极具价值的攻击目标
  • 组织需要限制Agent可以公开披露的信息范围,尤其是在响应Issue内容时
  • 用户输入在提供给模型之前,必须经过适当清理,或者与指令上下文进行隔离

行业内的多位专家也对这一漏洞发表了看法:

Fractional CTO Vijendra Malhotra指出:私有仓库从来都不是安全边界,它实际上只是组织边界——只有当读取你代码的人都是你雇佣的人类时,这个边界才成立。Agent打破了这一假设,如果一个Agent能访问你的私有仓库,请把其中所有内容都视为距离公开泄露只差一个精心构造的Issue。

Reddit用户Significant_Sea_4230则认为,危险之处并不在于Agent“很聪明”,而在于它可能连接了过多上下文、过多仓库,或者拥有权限过于宽泛的Token。

另一位用户cH3332xr补充道,最有意思的细节是“Additionally”的绕过机制:有效载荷本身并没有改变,只是这个衔接词让防护机制将其从“新的指令”重新归类成了“当前任务的延续”,这本质上是一个决策边界问题,而非内容问题。

Hacker News社区用户mcv则将这一漏洞与SQL注入进行了类比:SQL注入之所以产生,是因为系统把用户输入当成了指令的一部分,而不是原本应该被视为纯数据的内容。将两者分离之后这个问题就解决了,而提示注入无法避免,因为用户输入本身就是指令。

如需了解该漏洞的详细技术细节和概念验证过程,可以访问相关安全研究平台的完整报告。

以上内容不代表本平台立场,仅供读者参考