MCP 服务器平台存在严重漏洞,导致 3,000 多台服务器和数千个 API 密钥泄露

2025-10-23 09:28:01 0 339

Smithery.ai(一个流行的模型上下文协议 (MCP) 服务器注册中心)存在一个严重漏洞。该漏洞可能使攻击者能够窃取 3,000 多台 AI 服务器的数据,并窃取众多服务中数千名用户的 API 密钥。 MCP 通过将 AI 应用链接到外部工具和数据(例如本地文件系统或远程数据库)来为其提供支持。服务器分为本地服务器和远程服务器,远程服务器通常由服务提供商自行托管或完全托管。 据 GitGuardian 报道,Smithery.ai 的混合模型简化了部署,将用户提交的服务器托管在其基础设施上,这些基础设施由 GitHub 代码库构建成 Docker 镜像。但这种便利也放大了风险:一次漏洞就可能波及整个 AI 工具生态系统。

Smithery.ai(一个流行的模型上下文协议 (MCP) 服务器注册中心)存在一个严重漏洞。该漏洞可能使攻击者能够窃取 3,000 多台 AI 服务器的数据,并窃取众多服务中数千名用户的 API 密钥。

MCP 通过将 AI 应用链接到外部工具和数据(例如本地文件系统或远程数据库)来为其提供支持。服务器分为本地服务器和远程服务器,远程服务器通常由服务提供商自行托管或完全托管。

据 GitGuardian 报道,Smithery.ai 的混合模型简化了部署,将用户提交的服务器托管在其基础设施上,这些基础设施由 GitHub 代码库构建成 Docker 镜像。但这种便利也放大了风险:一次漏洞就可能波及整个 AI 工具生态系统。

利用简单配置漏洞
该漏洞源于 Smithery 构建过程中控制松懈。用户提交一个 smithery.yaml 文件,通过 dockerBuildPath 指定 Docker 构建上下文。合法的设置指向仓库内部,但系统未验证输入,导致路径遍历攻击。

通过将 dockerBuildPath 设置为“..”,攻击者可以引用 repo 之外的构建器机器的主目录,从而将敏感文件暴露给恶意 Dockerfile。

在测试中,GitGuardian 精心设计了一个名为“test”的仓库,其中包含一个经过操纵的 yaml 文件和 Dockerfile。Dockerfile 使用 curl 将目录树泄露到攻击者控制的站点,从而泄露了 .docker/config.json 等文件。

该文件包含一个权限过高的 fly.io身份验证令牌,用于 Docker 注册表访问,但授予更广泛的机器 API 权限。

Fly.io 使用虚拟化容器为 Smithery 的托管提供支持,并且该令牌解锁了一个拥有 3,243 个应用程序(主要是 MCP 服务器)以及服务基础设施的组织。

利用该令牌,攻击者可以查询应用程序、在机器上执行代码(通过“id”命令确认 root 访问权限),甚至嗅探网络流量。



捕获对受感染服务器的 HTTP 请求会泄露客户端发送的 API 密钥,例如查询参数中的 Brave 密钥。据GitGuardian 称,如果规模扩大,这可能会窃取数千个通过 MCP 服务器连接到服务的客户端的机密信息。

此次事件凸显了中心化AI托管的供应链风险。MCP服务器通常依赖静态API密钥而非OAuth,这虽然降低了攻击难度,但也增加了权限限制的复杂性。

与Salesloft 的 OAuth 滥用等违规行为类似,它展示了一个缺陷如何实现跨信任的横向移动。

Smithery 在 2025 年 6 月 13 日披露漏洞后,于 2025 年 6 月 15 日修复了遍历漏洞,包括轮换密钥和加强版本。随着人工智能生态系统的发展,此类平台必须优先考虑隔离,以保护开发者免受生态系统范围内的威胁。

关于作者

socsoc20篇文章38篇回复

评论0次

要评论?请先  登录  或  注册