Rejetto HTTP File Server 会话伪造导致未授权远程代码执行
Rejetto HTTP File Server 3.0.0 至 3.2.0 因使用基于 `Math.random()` 的 xorshift128+ 生成会话 cookie 签名密钥并在登录流程中泄露 PRNG 输出,攻击者可收集约 12 个泄露值、借助 Z3 SMT 求解器恢复内部状态并重建签名密钥,实现无凭据的未授权远程代码执行,CVSS 4.0 评分 9.3,需升级至 3.2.1;该漏洞由 Anthropic Mythos 模型在 Project Glasswing
1. 事件摘要
CVE-2026-61500 是 Rejetto HTTP File Server(HFS)3.0.0 至 3.2.0 版本中的一个严重认证绕过漏洞。HFS 使用 JavaScript 的 Math.random() 生成会话 cookie 的签名密钥,并在登录流程中将同一 PRNG 的输出泄露给未认证客户端。攻击者只需从登录端点收集约 12 个泄露的 Math.random() 输出,即可利用 Microsoft Z3 SMT 求解器恢复 V8 引擎的 xorshift128+ 内部状态,反推出签名密钥,伪造管理员会话 cookie,最终通过 HFS 的 server_code 配置功能实现远程代码执行。
该漏洞由 Horizon3.ai 攻击工程师 Zach Hanley 借助 Anthropic 的 Mythos 模型(Project Glasswing 项目)发现。CVE 记录于 2026 年 7 月 13 日由 VulnCheck 分配,修复版本为 HFS 3.2.1。Horizon3 于 2026 年 9 月 30 日发布详细技术分析后,VulnCheck 的金丝雀在 10 月 1 日即观测到在野利用活动,披露到利用的窗口被压缩至约 24 小时。
这是 Mythos 模型累计发现的 286 个 CVE 中第 2 个被确认在野利用的漏洞。VulnCheck 估计约有 100 个 HFS 实例暴露在公网。
2. 漏洞背景
2.1 Rejetto HFS 简介
HFS(HTTP File Server)是一个免费、开源的跨平台文件共享程序,允许用户通过浏览器共享文件。HFS 2.x 使用 Delphi 编写,曾因 CVE-2024-23692(未授权模板注入导致 RCE)被列入 CISA 已知被利用漏洞(KEV)列表。3.x 版本重写为 TypeScript/Node.js。
2.2 漏洞根因
HFS 的认证机制存在两个相互叠加的缺陷:
缺陷一:使用非加密安全的 PRNG 生成签名密钥。
HFS 在启动时通过 randomId(30) 生成会话 cookie 的签名密钥,而 randomId 的实现基于 Math.random().toString(36)。在 V8 引擎中,Math.random() 使用 xorshift128+ 算法,其输出是完全可逆的——给定足够的连续输出即可重建内部状态并向前/向后推算。
缺陷二:登录流程泄露 PRNG 原始输出。
loginSrp1 端点将 Math.random() 的完整精度输出存储在会话中,而 koa-session cookie 是 base64 编码的 JSON(已签名但未加密),客户端可以直接解码并读取精确的 52 位双精度浮点值。这意味着每次调用登录端点,攻击者都能获得一个连续的 Math.random() 输出。
Mythos 模型的关键贡献在于识别出这两个看似独立的缺陷构成了一条完整的攻击链——不安全的 PRNG 加上独立的输出泄露路径,恰好产生了进行状态恢复所需的观察数据。
2.3 AI 辅助漏洞发现
该漏洞由 Anthropic 的 Mythos 模型在 Project Glasswing 项目框架下发现。Mythos 不仅标记了 Math.random() 的不安全使用,还自动识别了输出泄露路径,选定 Z3 SMT 求解器作为攻击工具,并生成了可工作的漏洞利用概念验证,包括完整的 Z3 求解器实现。Horizon3 的研究人员指出,他们此前因缺乏数学专业知识和经济可行性而放弃了类似加密弱点的武器化研究,而 Mythos 同时解决了这两个障碍。
3. 影响范围
受影响产品
| 产品 | 受影响版本 | 修复版本 |
|---|---|---|
| Rejetto HFS | 3.0.0 ≤ 版本 < 3.2.1 | 3.2.1 及以上 |
受影响组件
- HFS 认证模块(
api.auth.ts) - 会话 cookie 签名机制(Koa + keygrip)
- 随机数生成工具(
cross.ts中的randomId函数) - 管理员 API(
server_code配置功能)
暴露面评估
VulnCheck 估计约有 100 个 HFS 实例暴露在公网。受影响版本为 3.x 的 TypeScript/Node.js 重写版本,与 2.x Delphi 版本无关。
4. 攻击条件
攻击前提
- 攻击向量: 网络(AV:N),攻击者可远程发起攻击
- 攻击复杂度: 低(AC:L)
- 所需权限: 无(PR:N),无需任何有效凭据
- 用户交互: 无(UI:N),攻击者无需诱导用户操作
- 攻击要求: 无(AT:N)
攻击链步骤
- 用户枚举: 利用 HFS 登录端点的响应差异确认内置管理员用户名是否存在
- PRNG 输出收集: 对泄露
Math.random()输出的登录端点发起约 12 次请求,收集连续的 PRNG 输出 - 状态恢复: 将收集到的输出作为约束条件输入 Microsoft Z3 SMT 求解器,恢复 xorshift128+ 的内部状态
- 密钥重建: 将恢复的状态向后推算至进程启动时消耗的
Math.random()调用,重建签名密钥 - 会话伪造: 使用重建的密钥伪造管理员会话 cookie(设置
username: 'admin'和allow_session_ip_change: true) - 远程代码执行: 利用 HFS 内置的
server_code配置功能在目标主机上执行任意代码
攻击者只需要知道一个可登录的用户名,不需要密码。
时间线
| 日期(2026 年) | 事件 |
|---|---|
| 7 月 13 日 | VulnCheck 发布 CVE-2026-61500,记录指向 HFS 3.2.1 修复版本 |
| 7 月 15 日 | CISA Vulnrichment 标记“无已知利用” |
| 9 月 26 日 | 第三方 PoC 出现在 GitHub |
| 9 月 30 日 | Horizon3 发布 Zach Hanley 的详细技术分析和 RCE 演示视频 |
| 10 月 1 日 | VulnCheck 金丝雀检测到在野利用(中国来源 IP,针对美国和日本主机) |
| 10 月 2 日 | VulnCheck 报告更多来自美国 IP(疑似代理)的利用活动 |
补丁发布约 11 周后,一份清晰可读的技术分析在一天内即被攻击者武器化。AI 辅助披露到在野利用的窗口,已经被压缩到小时级。
5. 风险等级
| 指标 | 值 |
|---|---|
| CVSS 4.0 基础评分 | 9.3(CRITICAL) |
| CVSS 4.0 向量 | 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 |
| CVSS 3.1 基础评分 | 9.8(CRITICAL) |
| CVSS 3.1 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE 分类 | CWE-338(使用加密弱伪随机数生成器) |
| 利用状态 | 在野利用已确认(VulnCheck KEV 收录) |
评分向量解读:攻击者可远程、无需认证、无需用户交互地完全控制目标系统,对机密性、完整性和可用性造成高影响。
6. 检测建议
- 检查 HFS 版本:确认环境中所有 HFS 实例是否运行 3.0.0 至 3.2.0 版本。3.2.1 及以上版本不受影响。
- 审计登录日志:排查 2026 年 9 月底以来来自陌生 IP 的异常登录尝试,重点关注短时间内多次调用登录端点的请求。
- 监控网络流量:关注来自中国及美国代理 IP 的异常访问模式,VulnCheck 已观测到这些来源的利用活动。
- 检查
server_code配置:审计 HFS 配置中server_code项是否被异常修改,该配置项是攻击者实现 RCE 的关键路径。 - 文件完整性监控:对 HFS 配置文件实施完整性监控,检测未授权的修改。
- 部署 VulnCheck KEV 监控:该 CVE 已被收录至 VulnCheck KEV 目录,建议将其纳入优先修补清单。
- 排查陌生 IP 登录:重点排查 9 月底以来的陌生 IP 登录记录,尤其是来自中国和美国的异常来源。
7. 修复建议
立即修复
- 升级至 HFS 3.2.1 或更高版本:3.2.1 版本修复了 PRNG 使用问题,改用加密安全的随机数生成方式(如
crypto.getRandomValues()),同时修复了 PRNG 输出泄露路径。 - 轮换管理员凭据:在升级前轮换所有管理员账户的密码和会话。
临时缓解措施
- 网络隔离:将 HFS 服务限制在可信网络内,禁止从公网直接访问。
- 禁用
server_code功能:如果业务上不需要,禁用server_code配置项以减少 RCE 攻击面。 - 限制登录端点访问:通过反向代理或 WAF 对登录端点实施速率限制和访问控制,增加收集 PRNG 输出的难度。
- 排查异常登录:立即排查 9 月底以来陌生 IP 的登录记录,确认是否已被入侵。
长期加固
- 加密安全随机数:确保所有安全敏感操作使用
crypto.getRandomValues()或crypto.randomBytes(),而非Math.random()。 - 会话存储审查:避免将安全敏感值存储在客户端可读的 cookie 中,即使已签名也应视为可被检查。
- AI 辅助安全审计:鉴于 Mythos 等模型在发现复杂漏洞链方面的能力,建议将 AI 辅助代码审计纳入常规安全流程。
- 缩短披露到修补窗口:建立快速响应机制,在 CVE 发布后立即评估并部署补丁,而非等待详细技术分析公开。
注意:没有证据表明攻击者与 Mythos 有关。模型的角色是漏洞发现与利用开发。
8. 参考链接
- NVD 官方漏洞详情:https://nvd.nist.gov/vuln/detail/CVE-2026-61500
- VulnCheck KEV 目录:https://vulncheck.com/kev
- Horizon3.ai 技术分析:https://horizon3.ai/attack-research/disclosures/anthropic-mythos-rejetto-hfs-rce/
- HFS v3.2.1 发布页面:https://github.com/rejetto/hfs/releases/tag/v3.2.1
- CVE漏洞库:https://www.cve.org/CVERecord?id=CVE-2026-61500