装上那天,就是它最后一次被你检查的那天(MCP 参考服务器 v2.1.0 自查清单)
MCP 官方参考服务器 v2.1.0 一次修了 8 个 GHSA 安全公告,涉及 filesystem、everything、fetch、git、memory 等:装过的人,现在该自查一遍了。
下面这份清单,写给照着教程装过 MCP filesystem 或 fetch 服务器的人。
先说事实。
据 GitHub 上的 release 页面,2026-10-25 00:03 UTC,cliffhall 发布了 modelcontextprotocol/servers 的 v2.1.0。
这一版一次修了 8 个 GHSA 安全公告。
再说一个更容易被忽略的事实:你的包管理器,大概率不会提醒你升级。
先把一件事说清楚
这不是"MCP 协议有洞"。
出问题的是官方维护的参考实现,也就是那几个拿来演示、拿来上手的服务器程序。
协议是一份约定。
参考实现是某个人按这份约定写出来的一段代码。
代码会有 bug,这很正常。修掉它,也是开源项目最正常的样子。
所以正确的反应,不是卸载 MCP,也不是从此不再信任任何 Agent 工具。
正确的反应很无聊:找到你装的那一份,确认版本,升级它。
无聊的事情,往往才是真正起作用的事情。
真正不正常的,是另一件事。
为什么偏偏是这几个
很多人照着教程装的 filesystem、fetch 服务器,用的就是这套参考实现。
参考实现有一个特殊的位置。
它不是某家公司的商业产品,也不是谁精心加固过的生产部署。
它是"大家都先从这里开始"的那一份代码。
于是它被复制进无数篇教程、无数份配置、无数台电脑。
它的 bug 也就跟着走得很远。
这不是在指责谁。这只是参考实现的物理规律:被抄得越多,修复就越需要每个抄过的人自己去领。
默认状态,是装完就忘
大多数人装 MCP 服务器的过程是这样的:
- 看到一篇教程
- 复制一行配置
- 重启客户端,能用了
- 然后再也没打开过那份配置
这就是默认路径。
它没有错,只是它默认你装下的东西永远不会变旧。
而代码一定会变旧。
你没有主动检查的东西,并不是安全的东西,只是你还不知道它的状态。
为什么这次你收不到提醒
据官方 release 说明,TS 服务器在 1.0.0 从日期版本改成了语义版本。
这带来一个很具体的坑。
在包管理器眼里,2.0.1 比 2025.x、2026.x 这样的日期版本"更小"。
所以如果你装的是日期版,它会觉得你已经是最新的了。
它不会提示你。
你得自己显式指定版本:
npm install @modelcontextprotocol/server-filesystem@2.0.1
换句话说:这一次,升级不是一个会自动发生的事件,而是一个需要你主动做出的决定。
这次修了什么
不需要读懂每一条公告的细节,你只需要知道自己用了哪一个、该升到哪一版。
1) server-filesystem → 2.0.1
官方称影响 1.0.0 到 2.0.0,以及日期版到 2026.8.31 为止。修复内容:
- 在检查和写入之间的空隙里,符号链接可能把写入、编辑、建目录、移动文件这类操作引到允许目录之外(GHSA-53mr-w429-c597)。官方说明 Linux、macOS 已修,Windows 只是部分修复
- 访问检查会剥掉路径末尾的引号或空白,导致同名加后缀的兄弟目录可能被访问(GHSA-7rgq-gccq-qphx)
- 在大小写不敏感的卷上(macOS 默认就是),大小写拼写不同的符号链接可能绕过检查,这是 2026.8.31 引入的回归(GHSA-4gxg-m5jx-9j57)
- list_directory_with_sizes 现在先检查再读大小,不再泄露允许目录外文件的大小和修改时间(GHSA-hhwq-wxfx-cj7g)
2) server-everything → 2.0.1
官方称影响 1.0.0 到 2.0.0,以及日期版 2025.9.24 到 2026.8.31。HTTP/SSE 传输以前会发 Access-Control-Allow-Origin: *,也不检查 Origin。官方的说法大意是,这样你访问的某个网页就可能调用它的工具(比如 get-env)并读到结果(GHSA-mvf5-2qqv-rg3c)。
3) mcp-server-fetch → 2026.10.24
官方称影响 2026.10.19 及之前的版本。修复内容:
- IDNA 域名在检查时和连接时用的是不同形式,可能打到内网(GHSA-v38p-wf49-hx2j)
- NAT64
64:ff9b::/96包着私有、回环或链路本地 IPv4 的地址,现在会被拒绝(GHSA-66qx-2266-pmj6) - 每次重定向之后都会重新检查 robots.txt(GHSA-3jqg-r5pp-rmp2)
自查清单
下面每一步都只是检查和升级。
- 找出你在用哪些服务器:打开 MCP 客户端的配置,把每一个服务器的包名和版本抄下来
- 看版本号的形态:filesystem 或 everything 是 1.0.0 到 2.0.0 之间的版本,或者是 2026.8.31 及更早的日期版(everything 的日期版从 2025.9.24 算起),就在受影响的范围里;fetch 只要还在 2026.10.19 或更早,也要升
- 先查运行环境:据官方 v2.0.0 说明,TS 服务器最低要求 Node 24,升级前先确认 Node 版本够不够
- 显式升级 filesystem:用上面那行带
@2.0.1的命令,不要指望包管理器提醒你 - 升级 everything:同样升到 2.0.1。如果你只是当年为了试功能装过它,现在已经不用了,直接从配置里删掉
- 升级 fetch:升到 2026.10.24。官方 v2.0.0 说明里,Python 服务器改用了 SDK 的 MCPServer,需要 mcp>=2.3,<3,依赖冲突的话先处理这一项
- macOS 用户多看一眼:如果你曾经升到过 2026.8.31,你就处在那个大小写回归里,这次一定要升
- Windows 用户别只看"已修复":官方写的是部分修复,还暴露什么、怎么配置规避,写在 GHSA-53mr-w429-c597 这份公告里,去读一遍。我的建议是,允许目录尽量只给到确实需要的那一层
- 重启客户端,再核对一次:确认实际跑起来的就是新版本,而不是缓存里的旧版本
如果你看完这份清单,发现自己根本说不出装了哪些服务器,这本身就是最重要的检查结果。
顺带一提
据官方说明,v2.0.0 在 10 月 19 日发布,把全部参考服务器重构到新规范(2026-07-28 这一版),同时仍然照常响应旧版客户端。
所以这次升级,大多数情况下不需要你同时换掉客户端。
最后
AI 工具越多,你装进自己电脑里的东西就越多。
每一个都是一份没写在纸上的承诺:你会在它变旧的时候想起它。
大多数人不会。
不是因为懒,而是因为没有人把"回头检查"当成一件需要被决定的事。
在工具越装越多的时候,你的注意力就是最后一道版本控制。
今天就把那份配置打开,看一眼。
来源:v2.1.0 Release;v2.0.0 Release;GHSA 安全公告。受影响与修复版本以官方 Release 和各 GHSA 为准;Windows 上的 filesystem 修复官方写为部分修复;本文只列自查项,不涉及任何利用方法;自查清单为作者整理。