Noma实验室揭秘GitLost漏洞:GitHub自主工作流如何泄露私有仓库数据?
美国东部时间5月27日上午11点,可立即注册参加网络研讨会!
Noma Security提供了丰富的平台、解决方案、资源和公司信息相关内容:
- 平台:
- Noma平台
- AI安全态势管理解决方案:保护企业AI环境
- 自主访问控制:基于策略的审批、运行时强制执行和持续监控
- 红队测试:通过进攻性测试加强AI安全
- 运行时保护:为AI和数据工作负载提供实时保护
- 解决方案:
- AI代理安全:通过自动化工作流简化事件管理
- AI应用程序安全:符合你工作流的持续AI安全保障
- AI治理与合规:实时监控和内置合规控制
- MCP服务器安全:跨所有代理的实时威胁检测
- 资源:
- 博客
- Noma实验室
- 洞察报告
- 网络研讨会
- 公司信息:
- 关于我们
- 招聘信息
- 联系我们
还可预约演示。
Noma实验室发布了关于GitLost:我们如何诱使GitHub的AI代理泄露私有仓库的研究。Noma实验室在GitHub新推出的自主工作流(Agentic Workflows)中发现严重提示注入漏洞,命名为GitLost。未经身份验证的攻击者可在与私有仓库同属一个组织的公共仓库中发布精心设计的GitHub问题,悄悄从私有仓库中提取数据。
简介
GitHub推出的GitHub自主工作流(GitHub Agentic Workflows),结合了GitHub Actions与由Claude或GitHub Copilot支持的AI代理。团队能用纯Markdown编写GitHub工作流,GitHub代理会自行读取问题、调用工具并作出响应。作为有安全开发背景的漏洞研究人员,会思考当GitHub代理读取不应信任的内容时会怎样,答案是会出现典型的间接提示注入攻击,攻击者将恶意指令隐藏在AI代理读取的内容中,使代理遵循隐藏指令而非操作者原本意图。
什么是GitHub自主工作流?
GitHub自主工作流让团队用自然语言自动化与代码仓库的交互。工作流存储在Markdown(.md)文件中,会被编译成YAML和扩展名为.yml的Actions文件,并在有可配置权限的AI代理帮助下运行。GitHub代理能读取问题、调用工具并访问组织内其他仓库。
GitLost漏洞概述
GitLost漏洞的根本原因是提示注入,在自主AI系统中较常见。多数自主提示注入攻击里,代理会将错误内容视为可信指令来源而被误导或滥用,当系统未在系统级指令和不可信用户数据间保持严格信任边界时就会出现这种情况。在该案例中,恶意行为者可创建GitHub问题,在问题正文中用英语隐藏命令,GitHub代理会遵循这些命令。
Noma实验室发现的易受攻击的GitHub自主工作流配置如下:
- 在GitHub中,当问题被分配时触发工作流。
- 读取问题的标题和正文。
- 使用添加评论工具回复问题。
- 对组织内的其他仓库(包括公共和私有仓库)具有读取权限。
攻击者利用此漏洞无需编码技能、访问权限或凭证,只需在使用GitHub自主工作流设置的组织的公共仓库中创建问题并等待。
攻击流程
Noma实验室的漏洞研究人员实施的攻击流程如下:
首先,精心设计一个看似无害的GitHub问题,内容是销售副总裁在与客户会面后提出的合理请求。当问题被分配时触发工作流操作,测试证实其他GitHub工作流操作情况也如此。
然后,GitHub自动化系统分配问题后,由事件触发的工作流使代理从poc(公共)和testlocal(私有)仓库中获取README.md的内容。
最后,GitHub代理将这些内容作为公共评论发布在公共仓库的问题上,任何人都可访问和查看。
“额外”的利用手段
GitHub设置了防护机制防止数据泄露,但未达预期效果。反复测试发现,添加关键字“此外”会引发模型意外行为,使其重新组织输出内容而非拒绝执行,通过欺骗模型可让GitHub防护机制失效,无法阻止数据泄露。
漏洞证明
Noma实验室公开了确认的研究结果,包括工作流重现和实际证据:
- 工作流运行记录:https://github.com/sasinomalabs/poc/actions/runs/23909666039
- 问题记录:https://github.com/sasinomalabs/poc/issues/153
泄露的数据包括以下仓库的README.md内容:
- sasinomalabs/poc(公共仓库)
- sasinomalabs/remote-ping(公共仓库,未确认是否有README)
- sasinomalabs/testlocal(私有仓库)
为何此漏洞至关重要
GitLost展示了组织使用自主AI系统面临的基本安全挑战。代理的上下文窗口是攻击面,其读取的任何内容若被视为指令输入都可能被武器化。传统安全模型假设信任边界由代码强制执行,而自主系统中信任边界部分由模型行为强制执行,模型本质上遵循指令。对于自主AI,提示注入攻击如同SQL注入对Web应用程序的影响,是系统性、全类别范围的漏洞,需系统的策略和防御措施。
Noma对开发者/AI安全官的建议
- 切勿将用户可控的内容作为AI代理的可信指令输入。
- 将权限范围设置为最小必要权限。具有跨仓库访问权限的代理尤其容易成为高价值攻击目标。
- 限制任何代理公开发布内容,特别是在回复问题内容时。
- 在将用户输入传递给模型之前,对其进行清理或与指令上下文隔离。
负责任的披露
Noma实验室已将GitLost漏洞负责任地披露给GitHub,此处分享的漏洞细节已获GitHub知晓和许可。
若觉得这很有趣,可订阅Noma实验室更多关于自主AI漏洞的研究,或者查看:GrafanaGhost、DockerDash、Context Crush、GeminiJack。正在寻找有效的自主AI安全解决方案,可联系我们安排Noma全面解决方案的演示。
阅读时长:5分钟
分类
- Noma实验室
其他相关文章
- 这是个好问题 - Claude标签和代理身份:对身份与访问管理(IAM)有何影响? 2026年6月28日
- Noma与Kong合作,保障自主AI时代的安全 2026年6月24日
- 这是个好问题 - 谁编写了你代理遵循的指令? 2026年6月24日
AI时代需要新的安全标准,借助Noma Security,可发现、保障和保护企业内AI触及的一切,可获取演示。
平台
- 平台
- 自主访问控制
- AI安全态势管理解决方案
- 运行时保护
- 红队测试
解决方案
- AI代理安全
- AI应用程序安全
- AI治理与合规
- MCP服务器安全
公司信息
- 关于我们
- Noma实验室
- 招聘信息
- 联系我们
学习资源
- 新闻室
- 博客
- 洞察报告
- 视频
- 网络研讨会
保持更新
Linkedin X(原Twitter)