CVE-2026-61500:Rejetto HFS 管理员会话伪造漏洞 CVSS 9.8

开源文件共享服务器 Rejetto HFS 被曝出会话签名密钥可预测漏洞:攻击者只需触发 12 次登录请求,就能从服务端返回的随机数中反推出签名密钥,伪造管理员会话并在服务器上执行任意命令。漏洞编号 CVE-2026-61500,CVSS 3.1 评分 9.8,修复版本 3.2.1 已于 7 月发布,但大量实例仍在运行旧版。

事件概述

Horizon3.ai 研究员 Zach Hanley 于 9 月 30 日公开了完整分析。该漏洞影响 Rejetto HFS 3.0.0 至 3.2.0,属于弱伪随机数生成器问题(CWE-338)。本次漏洞由 Anthropic 的 Mythos 模型在 Project Glasswing 项目中自主发现,并自行完成了利用代码编写。

HFS 是常用于快速共享文件的开源服务端。早期 2.x 版本用 Delphi 编写,2024 年曾因模板注入漏洞 CVE-2024-23692 被列入 CISA 已知被利用漏洞(KEV)目录。当前 3.x 已重写为 TypeScript,是独立代码库,本次漏洞与旧版无关。

技术细节

问题出在签名密钥的生成方式。当管理员未显式配置 COOKIE_SIGN_KEYS 时,Koa 框架使用的密钥来自 randomId(30),而该函数由 Math.random().toString(36) 构造。Node.js 底层的 V8 引擎中,Math.random() 采用 xorshift128+ 算法,速度快但不具备密码学安全性,其内部状态可从少量输出还原。

更严重的是,HFS 把同一随机数流的原始输出直接泄露给了未认证客户端:登录流程的 loginSrp1 步骤会把一个原始 Math.random() 值写入 Set-Cookie,相当于把 52 位双精度浮点数原样返回。完整攻击链如下:

  • 枚举用户,确认存在管理员账号;
  • 重复发起登录 12 次,收集 12 个泄露的随机数;
  • 用 Z3 SMT 求解器还原 xorshift128+ 的内部状态;
  • 把生成器反向回退到服务启动时刻,重建 Cookie 签名密钥;
  • 用该密钥签发伪造的管理员会话 Cookie;
  • 调用管理 API 的自定义端点执行任意 JavaScript,进而控制主机。

HFS 3.2.1 的发布说明也确认,此前所有版本均存在多个安全问题,可能导致攻击者获取管理权限。

影响评估

CVE-2026-61500 的 CVSS 3.1 评分为 9.8,CVSS 4.0 评分为 9.3,均属严重级别。攻击经网络发起、复杂度低、无需任何权限与用户交互,成功后从管理权限直达代码执行。

目前 CISA 的 SSVC 记录显示利用状态为“无”,尚无在野利用报告。但 Horizon3 指出,Mythos 已产出可用的概念验证利用,并完整实现了 Z3 求解器约束,一旦细节扩散,利用门槛会迅速降低。

修复建议

官方修复版本为 HFS 3.2.1,发布于 2026 年 7 月 13 日,比技术细节公开早了 79 天。建议未升级的用户立即升级,并同步检查以下项:

  • 显式设置 COOKIE_SIGN_KEYS,不要依赖默认的随机生成逻辑;
  • 限制 HFS 管理接口的公网暴露,仅允许可信网络访问;
  • 在访问日志中检索 loginSrp1 的高频请求,识别可能的密钥还原尝试。

该案例也反映出 AI 辅助漏洞挖掘的实际进展:以往因数学门槛高、投入产出比低而被人工研究者忽略的密码学缺陷,正在被自动化智能体批量发现并武器化。

参考来源