跳到主要内容

CVE-2025-15603

CVE IDCVE-2025-15603
厂商处理已拒绝 — 实际上无法利用
发布时间2026-03-09
发布 CNAVulDB(来自 huntr.com)
声称严重性低(CVSS 3.7 — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
CWECWE-330(使用不足随机值)

CVE 声称内容

Windows shell 变量 %RANDOM%backend/start_windows.bat 中用于派生备用 WEBUI_SECRET_KEY,产生不足随机值,可能允许 JWT 伪造。


为什么这不是漏洞

start_windows.bat 是 Open WebUI 的三个有文档的启动机制之一。其第一行注释说明*"此方法不推荐,我们建议您使用带有 WSL 的 start.sh 文件"*,但它是完全支持的启动脚本。

引用的代码路径是首次运行回退

%RANDOM% 路径运行仅当以下两项同时为真时:

  1. 操作员没有通过环境变量提供 WEBUI_SECRET_KEY
  2. 没有 .webui_secret_key 文件存在于主机上。

在这个首次运行设置状态下,脚本通过十二次追加 %RANDOM% 的值来生成磁盘上的密钥文件,将结果持久化到 .webui_secret_key,并在随后的每次调用中从该持久化文件读取。%RANDOM% 路径最多每个主机达到一次,在操作员未进行任何配置时,在每个随后的运行以及在操作员设置了 WEBUI_SECRET_KEY 的每个部署中被绕过 — 这是有文档的生产指导。

熵分析

%RANDOM% 返回 0–32767(15 位)。十二个连接的值产生总熵约为 180 位。虽然底层生成器是从系统时间播种的非加密伪随机数生成器,实际利用需要攻击者确定脚本首次在目标主机上运行的确切秒数(以估计播种),加上预先存在的网络访问来测试伪造的令牌。VulDB 自己的 CVSS 3.7(低)评分反映了这一点。

其他启动机制使用加密熵

另外两个支持的启动机制 — start.shopen-webui serve — 都使用加密强度熵:start.sh/dev/random 生成,open-webui serve 通过 Python 的 random 模块使用 random.randbytes(12)

适用的安全政策规则

  • 规则 1 配置选项和预期协议行为不是漏洞。设置时熵属性首次运行回退是配置问题。
  • 规则 6 引用的路径仅在特定首次运行状态中显现,并被每个有文档的生产配置绕过。

披露途径

在发布前,没有与此 CVE 相对应的报告通过项目的官方报告渠道(GitHub Security Advisories)提交。


对用户的影响

无需行动,适用于绝大多数部署。如果您在未设置 WEBUI_SECRET_KEY 环境变量的情况下通过 start_windows.bat 运行 Open WebUI,生成的密钥文件(.webui_secret_key)为典型部署提供充分的熵。对于高安全环境,明确设置 WEBUI_SECRET_KEY — 这是有文档的生产指导,无论启动机制如何。


参考

本内容仅供参考,不构成任何保证、担保或合同承诺。Open WebUI 按“现状”提供。请参阅您的许可协议 以了解适用条款。