InfoQ

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

8.5内容质量
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'触发模型异常行为,导致文件内容公开
  • 防御建议:隔离用户输入、限制代理权限、禁止公开敏感信息

结构提纲

按章节快速跳转。

  1. 介绍GitLost漏洞的发现背景及影响范围

  2. 通过公共仓库问题触发AI代理的提示注入攻击流程

  3. 关键词'Additionally'导致模型突破安全限制访问私有文件

  4. 提出限制代理权限和输入隔离等具体防护措施

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • GitHub AI代理漏洞
    • 攻击方法
      • 公共问题注入
      • 关键词触发
    • 防御措施
      • 输入隔离
      • 权限限制
    • 影响范围
      • 私有仓库泄露
      • 组织边界突破

金句 / Highlights

值得收藏与分享的关键句。

#GitHub#AI安全#漏洞利用#DevOps
打开原文

间接提示注入攻击利用GitHub的AI代理泄露私有仓库数据 - InfoQ

InfoQ 首页 News 间接提示注入攻击利用GitHub的AI代理泄露私有仓库数据

DevOps

在线 InfoQ AI 安全与隐私工程认证(8月26日):在受监管环境中部署AI?

间接提示注入攻击利用GitHub的AI代理泄露私有仓库数据

2026年7月23日 2分钟阅读

作者

  • Sergio De Simone

#### 关注我们

Youtube

232K 粉丝

Linkedin

26K 粉丝

Instagram

RSS

19K 读者

X

57.1k 粉丝

Facebook

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万名高级开发者的社区。查看示例

我们保护您的隐私。