MCP TypeScript SDK 修复 OAuth 客户端凭据可被恶意 MCP 服务器窃取的漏洞
MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server
AI 导读
GitHub 安全公告披露,MCP TypeScript SDK 的 OAuth 客户端在受影响版本中由 MCP 服务器决定凭据发往哪个授权服务器,凭据未与其所属授权服务器绑定。恶意或被攻陷的 MCP 服务器可指定自己的授权服务器,客户端在无用户交互的情况下会把此前登录保存的 refresh_token 和 client_secret,或内置 provider 配置的 client_secret 或签名断言发送过去。受影响版本为 @modelcontextprotocol/sdk 1.12.0 至 1.30.1,以及 @modelcontextprotocol/client 2.0.0 至 2.1.0 的部分场景;用 SDK 构建的 MCP 服务器和 stdio 客户端不受影响。公告建议可能连接过不可信 MCP 服务器的客户端轮换密钥并撤销 token,无法升级时只连接可信服务器。
推荐理由
公告给出了受影响版本区间、修复版本和升级后仍需手动补 issuer 的三种情况,使用 MCP OAuth 客户端的团队可据此排查。