首页 网络安全 正文

MCP Python SDK安全漏洞CVE-2026-59950

摘要

栋科技漏洞库关注到 MCP Python SDK的WebSocket 服务器传输不支持主机/源验证漏洞,追踪CVE-2026-59950,CVSS 3.X评分7.6。

Model Context Protocol(模型上下文协议)是一个官方 Python 开发工具包,这是专门给大模型 AI 程序做标准化数据与工具互通PyPI。

一、基本情况

Model Context Protocol 核心用途是快速开发 MCP 服务端、客户端,给Claude等AI提供文件读取、自定义函数、本地数据等外部能力。

MCP Python SDK安全漏洞CVE-2026-59950

Model Context Protocol能力是内置FastMCP简化开发,支持stdio、SSE、HTTP多传输协议,可封装工具、资源、提示词给LLM调用。

栋科技漏洞库关注到 MCP Python SDK的WebSocket 服务器传输不支持主机/源验证漏洞,追踪CVE-2026-59950,CVSS 3.X评分7.6。

二、漏洞分析

CVE-2026-59950存在于 MCP Python SDK 在 1.28.1之前的版本中,漏洞潜在安全风险严重,但该安全漏洞已在1.28.1版本得以修复。

已废弃WebSocket服务传输组件mcp.server.websocket.websocket_server接收WebSocket握手请求时完全不校验Host、Origin请求头。

该漏洞是由于已废弃的传输组件mcp.server.websocket.websocket_server接受WebSocket握手时不会校验Host请求头与Origin请求头,

服务端发送事件(SSE)传输、流式HTTP传输用的传输安全配置机制未对接至该WebSocket传输通道,无法在SDK层面限制访问源。

(一)受影响判定

仅当你的服务主动启用mcp.server.websocket.websocket_server传输通道时才存在风险。

该传输不属于MCP官方规范,已标记废弃,FastMCP框架不会默认启用,必须由开发者手动将其接入ASGI应用。

使用标准输入输出(stdio)、SSE、流式HTTP传输的服务不受此漏洞影响。

(二)漏洞详情

websocket_server函数直接创建Starlette WebSocket连接并立即执行accept(subprotocol="mcp")握手,未校验连接请求头。

与之相对,SseServerTransport与StreamableHTTPServerTransport支持可选安全配置参数TransportSecuritySettings,

建立会话前会通过TransportSecurityMiddleware.validate_request()校验请求的Host与Origin头。

浏览器会为跨域WebSocket升级请求携带Origin头,但不会对服务端响应执行同源策略限制。

任意站点的网页均可向启用该传输通道的MCP服务发起WebSocket连接,完成初始化握手后发送JSON-RPC调用指令。

(三)漏洞危害

若开发者通过该WebSocket通道部署MCP服务,监听本地回环或局域网地址,且未额外增加鉴权、访问源拦截机制;

当开发者访问恶意网页时,恶意页面可枚举、调用服务全部工具,读取服务内各类资源。

具体风险由服务对外开放的功能决定。该传输通道无需令牌或前置会话即可连接。

部分浏览器在公网页面发起局域网地址连接前会弹出确认弹窗,增加了用户交互步骤,但无法替代服务端校验逻辑。

(四)缓解方案

1、升级至1.28.1及以上版本。

新版本websocket_server支持与其他HTTP传输一致的可选security_settings安全配置参数,握手前校验Host、Origin头;

校验失败将返回HTTP 403状态码,并抛出异常ValueError("Request validation failed")。

该参数默认值为None,代表关闭校验,仅升级版本不会自动开启防护。需手动传入TransportSecuritySettings配置,开启enable_dns_rebinding_protection并配置合法主机、访问源白名单以启用防护。

2、推荐方案:弃用该废弃WebSocket传输,迁移至流式HTTP传输。FastMCP监听本地地址时会自动开启相关安全校验。

3、v2版本已彻底移除该WebSocket传输组件。

三、影响范围

MCP Python SDK <1.28.1

四、修复建议

MCP Python SDK ≥ 1.28.1

五、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接