事件经过
Noma Labs(Noma Security)披露了 GitLost,这是 GitHub 新推出的代理工作流功能中的结构性间接提示注入漏洞。该漏洞利用代理无法区分受信任的工作流指令和不受信任的问题内容的缺陷,结合过于宽泛的读取访问令牌,将私有存储库数据外泄到公开评论中。
影响分析
GitHub 代理工作流是一项新的、被广泛采用的功能,将 GitHub Actions 自动化与 LLM 代理相结合;这展示了一种可重复的、无需凭证的技术,可从任何授予代理广泛读取权限的组织中外泄私有源代码和机密 — 这是针对任何基于代理的 CI/CD 自动化的系统性风险模式。
攻击途径
未经身份验证的攻击者在组织的公开存储库中发布包含提示注入指令的精心制作的 GitHub 问题。当配置为在问题分配事件上触发的工作流(使用授予跨存储库(包括私有存储库)读取访问权限的令牌)处理问题时,代理遵循注入的指令来获取私有存储库内容(例如 README.md)并将其粘贴到问题的公开评论中 — 攻击者无需任何凭证或组织访问权限。
受影响系统
GitHub 代理工作流(GitHub Actions + 由 Claude 或 GitHub Copilot 支持的 AI 代理)
缓解措施
将代理工作流令牌限制在单个存储库而非组织范围的跨存储库读取访问;在代理输出公开发布前进行人工审查;将不受信任的问题内容视为数据而非指令。Noma Labs 在发布前向 GitHub 进行了负责任的披露。