🔴 严重 | CVE-2026-64622 — Network-AI (npm: network-ai) versions 5.12.2 throu...
🔴 【深度分析】严重安全漏洞:CVE-2026-64622
CVSS 评分: 严重(9.3)🔴 状态: Deferred 发布时间: 2026-07-20
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-64622 |
| CVSS 评分 | 9.3 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/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-862 |
| 发布时间 | 2026-07-20 |
| 最后更新 | 2026-07-23 |
| 状态 | Deferred |
| 数据来源 | disclosure@vulncheck.com |
CVSS 评分:9.3(严重)
CVSS 向量: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
危害等级: 严重(Critical)
漏洞概述
CVE-2026-64622 是 npm 包 network-ai(版本 5.12.2 至 5.13.3)中的一个授权缺失漏洞。开发者在配置中本应通过 checkAuth / secret 机制对敏感接口进行访问控制,但 ApprovalInbox 模块下的多个 GET 路由(/approvals/)未能应用该授权检查,导致任何未经身份验证的攻击者均可直接访问这些路由,获取高度敏感的审批请求数据。
所有响应中硬编码了 Access-Control-Allow-Origin: * 头,进一步放大了风险——任意网站均可跨域获取这些数据,即便操作员本人无意中访问了恶意页面,其浏览器中的会话也可能被利用。该漏洞是此前 GHSA-mxjx-28vx-xjjj 安全问题的不完全修复。
受影响组件与版本
| 组件 | 影响版本范围 |
|---|---|
network-ai (npm) |
≥ 5.12.2 且 ≤ 5.13.3 |
| 不受影响版本 | 5.13.4 及以上(需要手动验证补丁有效性) |
安装方式: 通过 npm 安装的 network-ai 包,通常作为 AI 服务的后端依赖使用。
漏洞原理分析
1. 授权机制缺失
network-ai 设计了基于 checkAuth 或 secret 配置的全局授权检查,原本应对所有受保护路由生效。然而在实现 ApprovalInbox 路由时,开发者遗漏了对以下 GET 端点的授权拦截:
GET /approvals/?status=allGET /approvals/:idGET /approvals/statsGET /approvals/sse
这些路由直接返回 ApprovalEntry 对象的全部字段,包括:
- action/target shell-command 字符串(可能包含高危命令)
- 文件路径(如
tmp/*.log,泄露项目目录结构) - justification(操作理由,可能包含业务敏感信息)
- risk level(风险等级,帮助攻击者判断攻击价值)
2. 跨域策略滥用
所有响应中固定返回 Access-Control-Allow-Origin: *,且未配合任何凭证验证逻辑。这意味着:
- 攻击者可以构建一个恶意网页,通过
fetch或XMLHttpRequest向目标服务器的/approvals/发起跨域请求,浏览器不会阻止该请求(因为 CORS 头部允许任意来源)。 - 若受害者正处于登录状态(例如在内部管理页面中),攻击者无需获取凭据即可窃取该会话下的审批数据。
3. 不完全修复背景
此漏洞被标记为 GHSA-mxjx-28vx-xjjj 的“不完全修复”,说明开发者曾尝试修复相似问题,但仅修复了部分路由(如 POST/PUT 等需要写权限的端点),而忽略了所有只读 GET 路由。这是典型的授权边界审查缺失。
CWE 映射
- CWE-862: 缺少授权(Missing Authorization)
影响评估
攻击可行性分析(参考 CVSS 向量)
| 维度 | 值 | 含义 |
|---|---|---|
| AV:N | 网络 | 攻击者可远程发起,无需物理/本地访问 |
| AC:L | 低复杂度 | 无需绕过任何特殊条件,直接发送 HTTP GET 请求即可 |
| AT:N | 无攻击前提 | 不需要额外技术条件(如特定协议版本) |
| PR:N | 无权限 | 零身份要求,完全未认证 |
| UI:N | 无需用户交互 | 攻击者直接请求,不需要诱导受害者点击 |
| VC:H / VI:H / VA:H | 机密性、完整性、可用性均为高 | 攻击者可以读取所有审批数据(高机密性),也可以据此构造恶意命令执行(可能间接影响完整性/可用性,但此处 CI/VI/VA 指标指本漏洞直接后果,主要为数据泄露) |
实际威胁
- 数据泄露:攻击者可以批量拉取所有审批请求,获得 shell 命令详情、文件路径、操作员凭据(如果命令中包含密码)等。
- 横向移动:泄露的 shell 命令可能暴露服务器配置、数据库连接字符串、API 密钥等,进一步扩大攻击面。
- 跨域数据窃取:结合
Access-Control-Allow-Origin: *,攻击者可以通过钓鱼页面(如向操作员发送含恶意页面的链接)窃取正在浏览内部系统的操作员的会话数据。
利用难度:极低(无需任何技巧,仅需一个 HTTP 请求)。
修复建议
1. 官方补丁
- 升级版本: 立即将
network-ai更新至 5.13.4 或更高版本。根据 NVD 状态(Deferred),建议直接联系包维护者确认最新修复版本是否已完全覆盖所有 GET 路由。 - 手动验证: 在升级后,使用以下命令测试是否存在授权绕过:
curl -v http://target:port/approvals/?status=all # 若返回 200 而非 401/403,说明修复不完整。
2. 临时缓解措施(无法升级时)
- 网络层防护: 在反向代理(如 Nginx、HAProxy)或 WAF 中,对
/approvals/路径添加访问控制,仅允许白名单 IP 访问:location /approvals/ { deny all; # 或 allow <internal-ip-range>; then allow; } - 修改 CORS 头部: 在应用层(或反向代理层)覆盖
Access-Control-Allow-Origin为具体的信任域名,禁止使用通配符。 - 关闭未使用的 SSE 端点: 如果业务不依赖
/approvals/sse,直接禁用该路由或返回 404。
3. 开发修复方向
- 在路由注册阶段,统一应用全局授权中间件,而非在每个路由处理器内部手动调用
checkAuth。 - 对
GET /approvals/*类路由进行全量审计,确保/:id等参数路由也被覆盖。 - 增加自动化测试,验证未认证用户访问所有受保护路由时应返回 401/403。
参考资料
| 类型 | 链接 |
|---|---|
| CVE 详情页 | https://nvd.nist.gov/vuln/detail/CVE-2026-64622 |
| CWE-862 | https://cwe.mitre.org/data/definitions/862.html |
| 相关安全公告 | GHSA-mxjx-28vx-xjjj(GitHub 安全公告,建议查看原始报告) |
| 数据来源 | disclosure@vulncheck.com(漏洞发现者) |
声明: 本文基于 NVD 公开数据及通用安全知识编写。部分技术细节(如具体代码实现)因 NVD 未披露而无法确定,所有分析均在公开信息范围内合理推断。建议使用者参考官方补丁说明进行实际验证。