🔴 【深度分析】严重安全漏洞: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=all
  • GET /approvals/:id
  • GET /approvals/stats
  • GET /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 未披露而无法确定,所有分析均在公开信息范围内合理推断。建议使用者参考官方补丁说明进行实际验证。