Indirect Prompt Injection Exploits GitHub's AI Agent to Leak Private Repository Data

TL;DR · AI 摘要
GitHub Agentic Workflows存在提示注入漏洞,攻击者可通过公共仓库问题触发AI泄露私有数据,无需权限或编码技能。
核心要点
- GitHub Agentic Workflows配置不当允许通过公共问题触发AI泄露私有数据
- 关键词'Additionally'触发模型异常行为,导致文件内容公开
- 防御建议:隔离用户输入、限制代理权限、禁止公开敏感信息
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- GitHub AI代理漏洞
- 攻击方法
- 公共问题注入
- 关键词触发
- 防御措施
- 输入隔离
- 权限限制
- 影响范围
- 私有仓库泄露
- 组织边界突破
金句 / Highlights
值得收藏与分享的关键句。
攻击者无需编码技能或凭证,仅需在公共仓库创建问题即可触发数据泄露
传统安全模型假设信任边界由代码强制,而智能体系统需通过模型行为控制信任边界
Noma建议禁止将用户控制内容作为AI代理的可信指令输入
间接提示注入攻击利用GitHub的AI代理泄露私有仓库数据 - InfoQ
InfoQ 首页 News 间接提示注入攻击利用GitHub的AI代理泄露私有仓库数据
DevOps
在线 InfoQ AI 安全与隐私工程认证(8月26日):在受监管环境中部署AI?
间接提示注入攻击利用GitHub的AI代理泄露私有仓库数据
2026年7月23日 2分钟阅读
作者
- Sergio De Simone
#### 关注我们
Youtube
232K 粉丝
26K 粉丝
新
RSS
19K 读者
X
57.1k 粉丝
21K 点赞
Bluesky
收听本文 -
0:00
音频准备就绪
您的浏览器不支持音频元素。
正常
1.25x
1.5x
喜欢
新下拉阅读列表
- 阅读列表
GitLost 是由 Noma Security 发现的一种提示注入攻击,该攻击通过欺骗 GitHub 新的代理工作流来泄露私有数据。攻击者可以通过在公共 GitHub 问题中嵌入隐藏指令,绕过安全防护措施,并诱导 AI 代理在公开评论中泄露机密信息。
Noma Labs 发现的易受攻击的 GitHub 代理工作流配置为在 issues.assigned 事件触发时运行,读取问题标题和正文,使用 add-comment 工具发布响应评论,并在组织内对公共和私有仓库均具有只读访问权限。
要利用此漏洞,攻击者不需要编程技能、访问权限或凭证。只需在使用 GitHub 代理工作流设置的组织所属的公共仓库中打开一个问题并等待即可。
Noma 报告称,尽管 GitHub 已设置严格的防护措施以防止此类情况,但简单使用关键词“Additionally”触发了模型的非预期行为。这导致模型访问了原本受限文件的内容,并在公开评论中发布这些内容。
传统安全模型通常假设信任边界由代码强制执行。在代理系统中,信任边界部分由模型行为强制执行,而模型本质上是遵循指令的。提示注入攻击对代理 AI 的影响,相当于 SQL 注入对 Web 应用程序的影响:一种系统性、类别广泛的漏洞类型,需要同样系统性的策略和防御措施。
为缓解这些风险,Noma 研究人员建议用户控制的内容绝不能被视为 AI 代理的信任指令输入。应将代理权限限制为严格必要的范围,因为具有跨仓库访问权限的代理是特别有价值的目标。组织还应限制代理可以公开披露的内容,尤其是在回应问题内容时,并确保在将用户输入提供给模型之前,对其进行适当的清理或与指令上下文隔离。
首席技术官(CTO)Vijendra Malhotra 在 LinkedIn 上评论称,Noma 的发现表明:
私有仓库从未是安全边界,而是组织边界。它仅在所有代码阅读者都是你雇佣的人类时才有效。代理打破了这一假设。[...] 如果代理可以访问你的私有仓库,请将其中的所有内容视为一个精心设计的问题离公开仅一步之遥。
类似地,Reddit 用户 Significant_Sea_4230 观察到:
危险之处不在于代理本身“聪明”,而在于它可能连接了过多上下文、过多仓库或过于宽泛的令牌。
另一方面,用户 cH3332xr 指出:
这里最有趣的细节是“Additionally”的绕过方式——有效载荷本身并未改变,只是通过一个框架令牌将其从“新指令”重新分类为“当前任务的延续”,在 guardrail 的视角中。这是一个决策边界问题,而非内容问题。
社区的最后一条评论来自 mcv,在 Hacker News 上提到:
SQL 注入是由于将用户输入视为指令的一部分,而非其原本应作为的纯粹数据。将这两者区分开来就解决了问题。提示注入是不可避免的,因为用户输入本意就是作为指令。
如需深入了解技术细节和概念验证,请阅读 Noma 官方网站上的完整报告。
作者信息主容器
关于作者
章节标题
每个作者信息的主容器
#### Sergio De Simone
显示更多
显示更少
#### 本内容属于 DevOps 主题
##### 相关主题:
- 开发
- DevOps
- 大型语言模型
- 代理
- github
- 安全漏洞
- 提示工程
- 相关编辑
- 相关赞助商 警报疲劳正在影响你:生产可靠性和 AI 采用现状
- 相关赞助商 在完全配置且连接实时 AWS 监控的环境中探索 NeuBird AI 玩具间。尝试你的第一个查询!
InfoQ 新闻通讯
每周五内容精选,每周二发送。加入超过25万名高级开发者的社区。查看示例
我们保护您的隐私。