Invariant 发现影响广泛使用的GitHub MCP 集成(GitHub 上有 14k 颗星)的关键漏洞。该漏洞允许攻击者通过恶意 GitHub Issue 劫持用户的代理,并迫使其泄露私有仓库的数据。
- 攻击设置:用户使用 MCP 客户端(如 Claude Desktop)并连接 GitHub MCP 服务器到其账户,有公共仓库
<user>/public-repo
和私有仓库<user>/private-repo
,攻击者可在公共仓库创建恶意 Issue 等待代理交互,用户查询代理时会触发攻击,导致代理将私有仓库数据泄露到公共仓库的 PR 中。 - 攻击演示:通过一组演示仓库(如
ukend0464/pacman
公共仓库和多个私有仓库)进行演示,在公共仓库的恶意 Issue 中注入 payload,用户向 Claude 4 Opus 发送请求触发攻击,代理找到攻击 payload 后将私有仓库数据泄露到公共仓库的 PR 中,成功窃取用户ukend0464
的私人信息。 - 检测有毒代理流:此漏洞不需要 MCP 工具被妥协,而是通过将代理连接到外部平台(如 GitHub)时暴露于不受信任的信息而产生,Invariant 开发了自动化方法来检测有毒代理流,以帮助组织识别和建模潜在威胁。
- 范围和缓解措施:漏洞不限于特定代理或 MCP 客户端,影响使用 GitHub MCP 服务器的任何代理,这是代理系统级的架构问题,而非 GitHub MCP 服务器代码本身的缺陷。建议采取实施细粒度权限控制和进行持续安全监控两种缓解策略,如使用 Invariant Guardrails 实施动态运行时安全层,以及部署 MCP-scan 进行实时安全扫描。
- 结论:展示了影响 GitHub MCP 服务器的漏洞,类似攻击在其他设置中也不断出现,应使用 Invariant 的 MCP-scan 和 Guardrails 等安全扫描仪来保障代理系统和 MCP 集成的安全,若有兴趣可联系[email protected]加入早期访问安全计划。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。