社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

公开GitHub Issue可诱骗AI泄露私有数据,绕过防护仅需一词

FreeBuf • 1 周前 • 53 次点击  
FreeBuf


Noma Security研究人员发现,攻击者只需在公开仓库创建一个看似正常的issue,无需窃取凭证或获取组织访问权限,就能诱使GitHub Agentic Workflows泄露组织私有仓库内容。若目标组织已授予该Agent跨仓库(包括私有仓库)的读取权限,恶意issue就能引导其将私有内容提取至公开评论中。


Noma将这种技术命名为GitLost。攻击目标是GitHub今年二月推出的公开预览功能Agentic Workflows,该功能允许用户直接在Markdown文件中用自然英语编写指令,由AI Agent自动读取issue和拉取请求、运行工具并自主回复。该功能可基于GitHub Copilot、Anthropic的Claude、Google Gemini或OpenAI Codex运行。


Part01

攻击原理剖析

漏洞根源在于间接提示注入这一已知问题:AI Agent无法可靠区分来自所有者的指令与隐藏在其读取内容中的指令。在Noma的PoC中,恶意issue伪装成销售副总裁在客户会议后的常规请求。当自动化流程分配该issue后,Agent便将私有仓库的README文件内容粘贴至公开评论。


GitLost攻击示意图

GitHub虽已内置防护措施(包括沙箱隔离、默认只读令牌、输入清洗及发布前的威胁检测扫描),但Noma测试发现仅需在恶意指令前添加"Additionally"一词,就能让模型将其视为后续任务而非拒绝项,从而绕过防护。


Part02

攻击特性分析

Noma安全研究主管Sasi Levi指出,GitLost的独特之处在于攻击者能控制Agent的权限行为——这不是聊天窗口,而是具有跨仓库读取权限的凭证化执行者。攻击者无需入侵服务器、窃取凭证或获取私有内容写入权限,仅需创建公开issue即可。这种模式符合开发者Simon Willison提出的"致命三要素":可访问私有数据的Agent、接收不可信外部输入、具备数据外泄途径。


攻击流程动画演示

Part03

行业现状与应对建议

GitLost是近期同类攻击的最新案例。此前Anthropic Claude Code GitHub Action漏洞、Orca Security的RoguePilot攻击,以及Invariant Labs披露的GitHub MCP服务器问题,均证明这是架构级缺陷,无法通过补丁修复。


Noma建议采取以下防护措施:


  • 将个人访问令牌权限限定于工作流处理的单一仓库,而非整个组织

  • 限制面向公众的工作流发布内容

  • 设置Agent响应内容的白名单作者

  • 建立人工审核输出机制


GitHub的威胁检测虽能扫描Agent输出,但Noma的单词绕过实验证明过滤机制仅是最后防线。正如Levi强调:在自然语言中,数据与指令不存在类似SQL的清晰界限,因此解决方案应侧重于架构设计——通过隔离、限定权限和分级审核来构建防护体系。在完善边界建立前,任何能读取私有数据、接收不可信输入且可公开发布的Agent,都面临因精心设计的issue导致数据泄露的风险。


参考来源:

Public GitHub Issue Could Trick GitHub Agentic Workflows Into Leaking Private Repo Data

https://thehackernews.com/2026/07/public-github-issue-could-trick-github.html


推荐阅读


电报讨论


扫码加入AI安全交流群

下载FreeBuf知识大陆APP

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/198576