漏洞  ·  2026-10-21

MCP Python SDK OAuth 混用问题使恶意 MCP 服务器可窃取客户端凭据(PKCE 绕过)

漏洞High 影响Global
Cycode 记录了一个官方 MCP Python SDK(1.9.1–1.29.1 和 2.0.0–2.1.1,针对机器对机器提供商的 CVSS 评分为 7.5)中的缺陷:在 OAuth 发现期间,恶意 MCP 服务器可返回 404,迫使 SDK 进入旧版回退路径,在此路径中,SDK 信任服务器的 OAuth 配置而不验证声明的颁发者。SDK 将授权码、客户端密钥和 PKCE 验证器发送到攻击者控制的令牌端点,从而绕过 PKCE 并获得 AI 代理账户的有效令牌。该问题已在 1.30.0 和 2.2.0 版本中修复,这些版本会验证授权服务器的颁发者。
使用 OAuth 的基于 HTTP 的 MCP 客户端(Google、Okta、Entra ID)可被诱骗向恶意服务器交出长期有效的凭据。这对于自主选择 MCP 服务器的代理尤为危险,因为劫持的注册表条目、打字欺骗、DNS 劫持或受提示注入影响的选项都可将客户端重定向。修补后的版本要求为 ClientCredentialsOAuthProvider/PrivateKeyJWTOAuthProvider 显式传递 issuer= 参数;仅升级是不够的。
恶意/受损的 MCP 服务器使客户端进入旧版 OAuth 发现回退路径,然后接收授权码、客户端密钥和 PKCE 验证器
官方 MCP Python SDK 1.9.1–1.29.1 和 2.0.0–2.1.1(使用 OAuth 的基于 HTTP 的 MCP 客户端)
升级到 MCP Python SDK 1.30.0(1.x)或 2.2.0(2.x),设置预期的 issuer= 参数,轮换暴露的客户端密钥,并撤销任何连接到非受信任服务器的应用令牌
NeuralTrust — MCP authentication OAuth security guide
在实时动态中查看 浏览更多 AI 安全与治理相关发现 — 每日清晨更新。
打开动态 →