近日,GitHub官方推出的MCP服务器为大语言模型增添了新功能,包括读取用户仓库议题和提交新拉取请求(PR)的能力。然而,这一创新却潜藏着三重安全威胁:私有数据访问、恶意指令暴露以及信息泄露。
据瑞士网络安全公司Invariant Labs发布的研究报告,他们发现GitHub官方的MCP服务器存在安全漏洞,攻击者能够在公共仓库中巧妙隐藏恶意指令。当AI智能体如Claude 4处理这些公共仓库议题时,可能会不经意间触发这些指令,导致MCP用户的私有仓库敏感数据被泄露。值得注意的是,类似的漏洞也存在于GitLab Duo中。
攻击的核心在于获取用户正在处理的其他仓库信息。由于MCP服务器被授予了访问用户私有仓库的权限,当大语言模型处理相关议题并尝试创建新PR时,私有仓库的名称便有可能被暴露出来。
Invariant Labs的测试案例详细揭示了这一攻击过程。用户只需向Claude发出一个看似无害的请求,如“查看pacman开源仓库的议题”,就可能触发信息泄露。当AI智能体在处理公共仓库议题时,会意外触发隐藏的恶意指令,进而将私有仓库的数据拉入上下文环境,并在公共仓库中创建一个包含私有数据的PR,使得攻击者能够轻松访问这些敏感信息。
更为严重的是,如果将多个MCP服务器组合使用,一个用于访问私有数据,一个用于暴露恶意Token,另一个用于泄露数据,将构成更为严峻的安全风险。而GitHub的MCP服务器目前已经将这三要素集成在一个系统中,这无疑加剧了安全威胁。
在实际测试中,Invariant Labs成功渗出了用户ukend0464的私有仓库信息,泄露的内容包括私人项目“Jupiter Star”、移居南美计划以及薪资等高度敏感的数据。这一漏洞源于AI工作流的设计缺陷,而非传统GitHub平台的安全漏洞。
为了应对这一安全挑战,Invariant Labs提出了两套防御方案。首先,实施动态权限控制,严格限制AI智能体的访问权限,确保它们只能访问必要的数据。其次,建立持续安全监测系统,通过实时行为分析和上下文感知策略来拦截异常的数据流动,从而及时发现并阻止潜在的安全威胁。