事件经过
GitHub 官方 MCP 服务器版本 0.22.0 至 1.1.1 在以 --lockdown-mode 运行的 HTTP 模式下包含跨租户授权缺陷。RepoAccessCache 是用第一个用户的凭证初始化的进程全局单例。后续用户共享相同的缓存和 GraphQL 客户端,绕过仓库访问控制,可能允许对私有仓库的未授权访问。
影响分析
GitHub 官方 MCP 服务器是 AI 编码代理和 GitHub 仓库之间的主要桥梁。MCP 服务器中的跨租户访问意味着代表一个用户操作的 AI 代理可能无意中或恶意地访问仅属于其他用户的私有仓库,暴露源代码、存储在仓库中的机密以及专有 AI 训练数据或模型配置。
攻击途径
在 HTTP 模式下以 --lockdown-mode 运行时,RepoAccessCache 初始化为使用第一个已认证用户的 GraphQL 客户端的进程全局单例。来自不同用户的所有后续请求重用此相同的客户端,意味着任何用户都可以访问仅针对第一个已认证用户授权的仓库 — 跨租户授权绕过。
受影响系统
github-mcp-server 0.22.0 – 1.1.1(在 1.1.2 中已修复)
缓解措施
升级到 github-mcp-server 1.1.2。公告:https://github.com/github/github-mcp-server/security/advisories/GHSA-pjp5-fpmr-3349