🔴 【深度分析】严重安全漏洞:CVE-2026-55445

CVSS 评分: 严重(9.3)🔴  状态: Deferred  发布时间: 2026-07-15


🔍 技术细节速览

字段 值
CVE ID CVE-2026-55445
CVSS 评分 9.3 🔴
严重程度 严重
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/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-287
发布时间 2026-07-15
最后更新 2026-07-18
状态 Deferred
数据来源 security-advisories@github.com

好的,作为一名资深网络安全分析师,我将基于您提供的 NVD 数据,为您生成一篇关于 CVE-2026-55445 的深度安全分析文章。


漏洞深度分析:CVE-2026-55445

⚠️ 严重等级:CRITICAL (严重)

项目 详情
CVE ID CVE-2026-55445
CVSS 4.0 评分 9.3
CVSS 向量 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
攻击复杂度 低
所需权限 无
用户交互 无
影响 完全失陷(权限提升至管理员,可获取机密数据、篡改配置)

漏洞概述

CVE-2026-55445 是一个存在于 Qinglong(青龙)定时任务管理平台中的严重身份验证绕过漏洞。

该漏洞允许未授权的远程攻击者,在无需任何凭证的情况下,向一个已初始化的 Qinglong 实例发起特制请求,从而重置管理员账户的密码。成功利用后,攻击者可以完全控制该平台,执行任意定时任务、访问敏感配置信息,乃至通过平台下发恶意脚本,获得对底层服务器的控制权。

该漏洞影响版本早于 2.20.1 的所有 Qinglong 版本,且利用条件极低,威胁等级极高。

受影响组件与版本

  • 受影响组件: Qinglong (青龙后台管理平台)
  • 影响版本: < 2.20.1
  • 修复版本: 2.20.1

漏洞原理分析

该漏洞的成因是一个典型的身份验证逻辑绕过问题,具体涉及 URL 路径重写与安全中间件执行顺序之间的不一致性。

  1. 脆弱的守卫机制: 在 back/loaders/express.ts 文件中,存在一个名为 init guard 的初始化守卫中间件。这个守卫的设计初衷是防止用户重复初始化系统,即:系统已经初始化(存在管理员账户)后,/api/user/init 接口应被禁止访问,以防止未经授权的重设。

  2. 路径重写规则(Rewrite): 为了支持多种 API 路径格式,代码中通过 rewrite('/open/*', '/api/$1') 设置了一条路径重写规则。这意味着所有以 /open/ 开头的请求路径,在后端处理时会被重写为以 /api/ 开头的路径。例如,PUT /open/user/init 会被映射处理为 PUT /api/user/init。

  3. 执行顺序的致命缺陷: 问题在于守卫中间件(Guard)和 JWT 认证中间件(JWT Auth)的执行顺序与路径重写的时机。详细流程如下:

    • 守卫检查阶段: 守卫中间件优先检查请求的原始路径(request.path)。它明确检查了 /api/user/init 这个接口,但完全没有检查 /open/user/init 这个路径。因此,一条发送到 /open/user/init 的请求会轻松通过守卫的检查。
    • JWT 认证阶段: 请求通过守卫后,进入 JWT 认证中间件。同样,负责 JWT 认证的中间件也只检查了 /api/* 路径下的白名单,并未将 /open/* 纳入考虑。由于 /open/user/init 不在其认证检查范围内,该请求在没有提供任何 JWT Token 的情况下也被放行。
    • 路径重写与执行: 请求最终通过了所有检查,进入路由处理函数。此时,路径重写规则生效,PUT /open/user/init 被成功重写为 PUT /api/user/init,并执行了管理员密码重置的逻辑。

总结来说,攻击者正是利用了守卫和认证中间件只检查 /api/ 路径,而忽略了经过路径重写后也能访问同一功能的 /open/ 路径这一缝隙。 这种“先放行,后重写”的顺序,直接导致了一个严重的安全漏洞。

影响评估

  • 攻击复杂度(低): CVSS 4.0 向量中的 AC:L(攻击复杂度低)表明,利用该漏洞不需要绕过任何复杂条件,只需发送一个简单的 HTTP PUT 请求即可。
  • 所需权限(无): PR:N(无需权限)明确指出,攻击者无需登录或拥有任何合法账户。
  • 攻击向量(网络): AV:N(网络攻击向量)意味着攻击者可以通过互联网远程发起攻击,无需物理接触目标服务器。
  • 机密性与完整性影响(高): VC:H 和 VI:H 表明攻击者能够完全读取系统中的所有敏感数据(如服务器密钥、配置、其他用户凭据)并篡改任意数据(如添加恶意定时任务、修改系统配置)。
  • 潜在后果:
    1. 完全接管平台: 获得平台最高管理员权限。
    2. 服务器失陷: 通过平台执行定时任务(Shell、Python 等),攻击者可以在服务器上执行任意命令,从而获得操作系统级别的控制权。
    3. 数据泄露: 窃取平台内管理的所有账户信息、脚本、环境变量等。
    4. 横向移动: 利用受控的服务器作为跳板,攻击内网其他系统。
    5. 服务拒绝(间接): 恶意修改或删除关键任务,导致业务中断。

修复建议

强制修复(推荐)

立即将 Qinglong 平台升级到 2.20.1 或更高版本。该版本已修复路径重写与守卫检查的逻辑冲突。

临时缓解措施

如果无法立即升级,可以考虑以下措施:

  1. 配置反向代理规则: 在 Nginx、Apache 或 Caddy 等反向代理服务器上,添加一条明确的规则,拒绝所有对 /open/ 路径下 user/init 接口的访问。例如,在 Nginx 配置中添加:
    location ^~ /open/user/init {
        deny all;
        return 403;
    }
    
  2. 限制网络访问: 使用防火墙(如 iptables,安全组)限制对 Qinglong 端口的访问,只允许受信任的 IP 地址或内网访问。
  3. 日志监控: 开启并监控 Qinglong 的访问日志,关注是否有异常的 /open/user/init 请求,以便及时发现攻击行为。

参考资料