🔴 严重 | CVE-2026-55445 — Qinglong is a timed task management platform suppo...
🔴 【深度分析】严重安全漏洞: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 路径重写与安全中间件执行顺序之间的不一致性。
脆弱的守卫机制: 在
back/loaders/express.ts文件中,存在一个名为init guard的初始化守卫中间件。这个守卫的设计初衷是防止用户重复初始化系统,即:系统已经初始化(存在管理员账户)后,/api/user/init接口应被禁止访问,以防止未经授权的重设。路径重写规则(Rewrite): 为了支持多种 API 路径格式,代码中通过
rewrite('/open/*', '/api/$1')设置了一条路径重写规则。这意味着所有以/open/开头的请求路径,在后端处理时会被重写为以/api/开头的路径。例如,PUT /open/user/init会被映射处理为PUT /api/user/init。执行顺序的致命缺陷: 问题在于守卫中间件(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表明攻击者能够完全读取系统中的所有敏感数据(如服务器密钥、配置、其他用户凭据)并篡改任意数据(如添加恶意定时任务、修改系统配置)。 - 潜在后果:
- 完全接管平台: 获得平台最高管理员权限。
- 服务器失陷: 通过平台执行定时任务(Shell、Python 等),攻击者可以在服务器上执行任意命令,从而获得操作系统级别的控制权。
- 数据泄露: 窃取平台内管理的所有账户信息、脚本、环境变量等。
- 横向移动: 利用受控的服务器作为跳板,攻击内网其他系统。
- 服务拒绝(间接): 恶意修改或删除关键任务,导致业务中断。
修复建议
强制修复(推荐)
立即将 Qinglong 平台升级到 2.20.1 或更高版本。该版本已修复路径重写与守卫检查的逻辑冲突。
临时缓解措施
如果无法立即升级,可以考虑以下措施:
- 配置反向代理规则: 在 Nginx、Apache 或 Caddy 等反向代理服务器上,添加一条明确的规则,拒绝所有对
/open/路径下user/init接口的访问。例如,在 Nginx 配置中添加:location ^~ /open/user/init { deny all; return 403; } - 限制网络访问: 使用防火墙(如 iptables,安全组)限制对 Qinglong 端口的访问,只允许受信任的 IP 地址或内网访问。
- 日志监控: 开启并监控 Qinglong 的访问日志,关注是否有异常的
/open/user/init请求,以便及时发现攻击行为。
参考资料
- NVD 官方页面: https://nvd.nist.gov/vuln/detail/CVE-2026-55445
- CWE-287 (Improper Authentication): https://cwe.mitre.org/data/definitions/287.html
- GitHub 安全通告 (推测): 该漏洞通过 GitHub 的
security-advisories@github.com披露,推测其原始通告和安全修复 commit 将发布在 Qinglong 的 GitHub 仓库中。建议关注该项目的发布页面以获取更多细节。