🔴 严重 | CVE-2026-52830 — fast-mcp-telegram is a Telegram MCP Server. Prior ...
🔴 【深度分析】严重安全漏洞:CVE-2026-52830
CVSS 评分: 严重(9.4)🔴 状态: Received 发布时间: 2026-07-02
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-52830 |
| CVSS 评分 | 9.4 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L |
| CWE 分类 | CWE-22,CWE-287 |
| 发布时间 | 2026-07-02 |
| 最后更新 | 2026-07-02 |
| 状态 | Received |
| 数据来源 | security-advisories@github.com |
CVSS 评分: 9.4(严重)
CVSS 向量:AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
CWE: CWE-22 (路径遍历) + CWE-287 (认证绕过)
漏洞概述
CVE-2026-52830 是存在于 fast-mcp-telegram(一个基于 Telegram 的 MCP 服务器)中的路径遍历认证绕过漏洞,危害等级为 严重。攻击者无需身份验证,仅通过构造一个特制的 HTTP Bearer Token(例如 ../fast-mcp-telegram/telegram),即可绕过服务器对会话名称的保留检查,伪装成默认的遗留会话(telegram)进行认证。成功利用该漏洞后,攻击者能够恢复该会话的完整访问权限,在启用了账户前缀 MCP 工具的环境中,仍然可以使用针对该默认账户的命名工具进行任意操作。
受影响版本为 0.19.1 之前,官方已在 0.19.1 中修复该问题。
受影响组件与版本
| 组件名称 | 受影响版本 | 安全版本 |
|---|---|---|
| fast-mcp-telegram | < 0.19.1 | 0.19.1 |
该组件是一个基于 Node.js 的 Telegram MCP 服务器,运行在服务端,通过 HTTP 对外提供 Bearer Token 认证接口。
漏洞原理分析
1. 漏洞成因
该漏洞的根源在于 fast-mcp-telegram 对 HTTP Bearer Token 的验证逻辑存在路径注入。
- 当服务器收到以下 HTTP 请求时:
Authorization: Bearer <raw_token>
服务器将 raw_token 直接拼接成会话文件的路径:
session_file_path = <base_dir> + "/" + raw_token + ".session"
- 在验证阶段,服务器会对
raw_token做一个简单的保留名称检查:如果raw_token恰好等于telegram则拒绝(因为这是一个默认会话名称)。但是,它并未对路径分隔符(如/、../)进行过滤或规范化。
2. 攻击构造
攻击者可以构造如下 Token:
Bearer ../fast-mcp-telegram/telegram
解析后的真实路径变为:
<base_dir>/../fast-mcp-telegram/telegram.session
如果默认遗留会话文件位于:
~/.config/fast-mcp-telegram/telegram.session
那么路径穿越后,服务器会找到该文件并认为 Token 有效。
3. 为什么保留名称检查无效
因为服务器仅检查 原始 Token 字符串 是否等于 telegram。而攻击者提交的是 ../fast-mcp-telegram/telegram,该字符串与 telegram 不相等,因此检查被顺利绕过。
4. 前缀中间件的局限性
文档中提到,当启用了“账户前缀 MCP 工具”后,虽然工具名称会加前缀(如 default_xxx),但攻击者仍可以调用这些带前缀的工具。前缀中间件并不能拦截会话选择绕过本身——一旦认证被绕过,所有针对默认账户的操作权限即开放。
影响评估
攻击难度分析(基于 CVSS 向量)
| 向量维度 | 取值 | 含义 |
|---|---|---|
| AV(攻击向量) | 网络 (N) | 攻击者可通过远程网络发起攻击 |
| AC(攻击复杂度) | 低 (L) | 无特殊条件,普通请求即可利用 |
| PR(权限要求) | 无 (N) | 不需要已有用户权限 |
| UI(用户交互) | 无 (N) | 不需要用户主动操作 |
| Scope(影响范围) | 未变 (U) | 漏洞利用不跨越权限边界 |
| C(机密性) | 高 (H) | 可读取目标会话内的所有消息、联系人、群组等 |
| I(完整性) | 高 (H) | 可以以该会话身份发送消息、执行命令 |
| A(可用性) | 低 (L) | 可能影响部分功能,但非核心可用性问题 |
综合评估:
- 利用条件:极少。只需目标服务器运行受影响版本,且默认会话文件存在(这是大多数场景下的默认配置)。
- 攻击复杂性:极低。无特殊工具需求。
- 后果严重性:高。攻击者可以完全接管
telegram会话,拥有对账户内数据的完整读写能力。 - 受影响范围:广。使用 fast-mcp-telegram 并保留默认会话配置的所有部署实例均面临风险。
修复建议
🔧 立即修复(推荐)
- 升级到安全版本:
- 将所有 fast-mcp-telegram 实例更新至 v0.19.1 或更高版本。
- 更新命令:
npm update fast-mcp-telegram
🛡️ 临时缓解措施(无法立即升级时)
手动删除或重命名默认会话文件:
- 如果不再需要 legacy 会话,请删除
~/.config/fast-mcp-telegram/telegram.session。 - 或者将其重命名为一个不可预测的名称,并更新配置文件。
- 如果不再需要 legacy 会话,请删除
限制 HTTP 端点暴露:
- 通过防火墙或反向代理仅允许受信任的 IP 访问 fast-mcp-telegram 的 HTTP 接口。
- 使用 WAF 规则拦截包含
../等路径遍历模式的请求头。
监控日志:
- 检查
Authorization头中是否出现异常 Token(如包含../或多次出现telegram相关关键词)。
- 检查
⚠️ 注意
- 上述临时缓解措施不能完全替代版本升级,仅能降低风险窗口期内的攻击可能性。
- 如果您的环境启用了账户前缀 MCP 工具,不要误以为前缀机制可以防御此漏洞,它无法阻止会话选择绕过。
参考资料
| 类型 | 链接 |
|---|---|
| NVD 官方页面 | https://nvd.nist.gov/vuln/detail/CVE-2026-52830 |
| CWE-22 | https://cwe.mitre.org/data/definitions/22.html |
| CWE-287 | https://cwe.mitre.org/data/definitions/287.html |
| 供应商安全公告 | GitHub Security Advisory(待官方发布) |
最后更新时间:2026-07-02
分析结论:该漏洞利用简单、影响广泛、后果严重,应立即执行修复。