MCP Inspector 的 9.4 分漏洞:会执行命令的开发工具,不该裸奔在 0.0.0.0
0.14.1 之前的 MCP Inspector 在客户端与代理之间没有鉴权,未认证请求就能借 stdio 启动 MCP 命令,CVSS 打到 9.4。这不是"开发工具无所谓",而是本地代理类工具的通病。
MCP Inspector 是官方给 MCP 服务器用的调试器:浏览器界面点一下,它就在本机起一个 Node 代理,代理再按你的配置去 spawn 一个 MCP 服务器进程。问题在于,0.14.1 之前的版本里,浏览器界面和这个代理之间没有鉴权。
于是任何能访问到代理端口的东西,都能让它在你的机器上执行命令。CVE-2025-49596,CVSS 9.4。
漏洞的形状
官方描述很直接:版本低于 0.14.1 的 Inspector 由于客户端与代理之间缺少认证,允许未认证请求通过 stdio 启动 MCP 命令。翻成工程语言就是三段:
- Inspector 的代理监听在
0.0.0.0,不是127.0.0.1; - 代理的 HTTP 接口没有 token,也没有来源校验;
- 接口的职责本来就是“执行 MCP 服务器”,而 MCP 服务器就是任意本地命令。
单个条件都不致命,三个叠起来就是远程代码执行。攻击者不需要先攻破你的机器,只要让浏览器发一个请求到 localhost——DNS rebinding 正好干这个:恶意页面把域名解析到 127.0.0.1,浏览器当成普通跨源请求发出去,代理却把它当合法调用。
为什么“本地工具”这个标签害人
这类工具的威胁模型经常被默认成“只有开发者本人在用”,所以认证、绑定地址、CSRF 防护一律省掉。但浏览器是公共执行环境:
- 你开着 Inspector 调试,同时随手点开一个网页,那个网页就能对你的 localhost 发请求;
- 公司内网里,代理监听
0.0.0.0意味着同网段的任何人都能直连; - 在 CI 或远程开发机上跑 Inspector,暴露面更大。
MCP 生态里这类“本地代理 + 浏览器 UI”的形态只会越来越多,因为调试体验确实好。但能执行命令的接口,不能因为跑在 localhost 就免掉鉴权。
怎么修
官方在 0.14.1 里补上了认证。除此之外,部署侧还有三件事值得做:
- 绑定回环地址。代理只监听
127.0.0.1,不要图方便写0.0.0.0; - 升级到 0.14.1 或更高,并确认 npx 拉到的是新版本而不是缓存;
- 把 Inspector 当成特权工具:只在需要时开,用完就关;不要长期挂在后台,更不要放到公网可达的机器上。
一句判断
MCP 把“模型能调用工具”变成了默认能力,随之而来的是一整类新攻击面:工具描述本身可以被投毒,工具的执行通道也可以被滥用。Inspector 这个洞修起来只要一行版本号,但它提醒的事情不会随补丁消失——凡是“浏览器界面 + 本地执行”的组合,都该按远程代码执行来设计防线。
封面图:MCP Inspector 仓库(GitHub)。

评论
…