MCP servers v2.1.0 修 8 个漏洞

2026 年 10 月 25 日,官方仓库 modelcontextprotocol/servers 发布 v2.1.0,集中修复三个参考实现服务器上的 8 个安全问题:TypeScript 包 @modelcontextprotocol/server-filesystem 与 server-everything 升到 2.0.1,Python 包 mcp-server-fetch 升到 2026.10.24。站内短讯已概括要点;下面按 Release 与 GHSA 核对该怎么升级、日期版为什么升不上去、谁该立刻动手。
发生了什么
v2.1.0 是一次安全向补丁发布,不是功能大版本。Release 写明受影响区间:filesystem 为 1.0.0 至 2.0.0,以及日期版至 2026.8.31;everything 为 1.0.0 至 2.0.0,与日期版 2025.9.24 至 2026.8.31;fetch 为至 2026.10.19。同日公开的 8 条相关 advisory 对应上述三包。memory、sequential-thinking、git、time 在本版本中功能版本号未变。社区报告者写在致谢里;Windows 上 filesystem 若后续还有完整 TOCTOU 修复,应以新 advisory 为准。本站未复现各漏洞利用路径,只核对版本号与安装行为。
为什么重要
官方 filesystem 与 fetch 是很多本地 Agent 的默认挂载:一个能读工作区,一个能拉网页。路径校验一旦和真实写入不一致,Agent 会话就可能写到允许目录之外;everything 若对任意网页源开放,用户浏览器里的页面就可能调到本机工具。把参考实现直接写进生产依赖的团队,别把这当成可以拖一拖的小版本号。
日期版号看起来很新,在 npm 的排序里却会压过 2.0.1——不显式钉版本,等于安全补丁一直装不上。
Release 还提醒:TypeScript 服务器从日期版迁到语义版之后,包管理器会把 2.0.1 排在所有 2025.x / 2026.x 之下。表面上「最新日期」其实更旧——这是这次升级最容易踩空的地方。
可核实数字
| 包 | 修复版 | 本机核对(2026-10-27) |
|---|---|---|
@modelcontextprotocol/server-filesystem | 2.0.1 | npm view … version 与 dist-tags.latest 均为 2.0.1 |
@modelcontextprotocol/server-everything | 2.0.1 | npm view … version → 2.0.1 |
mcp-server-fetch | 2026.10.24 | pip index versions 顶部为 2026.10.24 |
| 本版修复 advisory 数 | 8(filesystem 4 + everything 1 + fetch 3) | |
本机复现安装坑:在 package.json 里写死 @modelcontextprotocol/server-filesystem@2026.8.31 时,npm install 与 npm update 都仍停在 2026.8.31;执行 npm install @modelcontextprotocol/server-filesystem@2.0.1 之后,npm ls 才显示 2.0.1。安装日期版时 npm 还会给出 deprecated 提示:日期版已停发,请回到语义化版本。
一个主对比
| 停在日期版(如 2026.8.31) | 显式 2.0.1 / fetch 2026.10.24 | |
|---|---|---|
| 版本观感 | 年份数字大,看似「更新」 | 主版本数字小,却是当前安全线 |
npm update | 不会自动跳到 2.0.1 | 已在修复版上 |
| filesystem 写入校验 | 仍含已披露绕过面 | Linux/macOS 收紧;Windows 仍须按 advisory 收紧允许目录与运行身份 |
| everything 的 CORS | 曾使用 * | 校验请求 Origin |
谁该关心 / 怎么试
生产 Agent、CI、开发机上凡是挂了官方 filesystem、everything 或 fetch 的,请对照锁文件与 npm ls / pip show 核版本,并在 CI 里直接断言版本号,而不是依赖 latest。Windows 工作站还要按 GHSA-53mr-w429-c597 的说明收紧允许目录与进程身份。可先执行:
npm install @modelcontextprotocol/server-filesystem@2.0.1
npm install @modelcontextprotocol/server-everything@2.0.1
pip install 'mcp-server-fetch==2026.10.24'
npm ls @modelcontextprotocol/server-filesystem
升级后先做只读烟雾:列出允许目录、用 fetch 拉公开页面。写文件和跨源场景放到隔离目录;完整利用路径别在共享环境复现。
最后
若 Agent 还钉着 2026 年日期版 filesystem 或 everything,今天把依赖改成 2.0.1 并锁进 CI;fetch 升到 2026.10.24。细节以 GitHub Release 与 Security Advisories 为准。