跳到主要内容

CVE-2025-15603

评估指标官方评估与明细
CVE 编号CVE-2025-15603
官方处理声明 (Vendor Disposition)已驳回 (Rejected) —— 在实际运行中几乎不可被利用 (Practically Unexploitable)
披露日期2026-03-09
下发机构 (CNA)VulDB(源于 huntr.com)
宣称的严重等级低危 (Low) —— CVSS 3.7 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N)
CWE 归类CWE-330(采用的随机值随机性强度不足)

CVE 指控的具体内容

该 CVE 指控称,Open WebUI 在 Windows 部署脚本 backend/start_windows.bat 中,使用了 Windows 命令行系统内置的 %RANDOM% 变量来派生系统的备用鉴权密钥 WEBUI_SECRET_KEY。指控人声称,此举会产生随机性强度严重不足的随机值,从而导致攻击者能够伪造 JWT(JSON Web Token)鉴权凭证。


为什么这不属于系统漏洞

start_windows.bat 是 Open WebUI 官方文档中提供的三种合法启动方式之一。虽然我们在该脚本的第一行明确添加了注释 "This method is not recommended, and we recommend you use the start.sh file with WSL instead"(即:我们不推荐此方法,并建议您改用 WSL 运行 start.sh),但该批处理脚本依然是一个受官方支持的启动脚本。

被指控的代码路径仅是首次启动时的备用机制

利用 %RANDOM% 派生秘钥的代码分支,仅且只有在以下两项硬性条件同时成立时才会执行:

  1. 部署人员在拉起服务时,通过环境变量传入任何 WEBUI_SECRET_KEY 参数。
  2. 宿主机部署路径下不存在任何已持久化的 .webui_secret_key 秘钥文件。

在此首次拉起服务的备用配置流程中,脚本会连续读取十二次 %RANDOM% 的值并将其拼接在一起,生成一个本地密钥文件并将其持久化写入 .webui_secret_key 文件中,随后在每一次后续重启时直接读取该文件中的秘钥。也就是说,在系统管理员未进行任何手动安全配置的前提下,该 %RANDOM% 备用路径对单台宿主机最多只会执行一次。而在后续运行中,或在管理员根据生产环境加固规范手动配置了 WEBUI_SECRET_KEY 变量的所有场景下,此备用分支都将被直接绕过,根本没有运行的机会。

随机性与熵值分析

Windows 命令行系统的 %RANDOM% 变量会返回一个介于 0 至 32767 之间的整数(即 15 bits 的熵值)。连续读取 12 次并进行字符串拼接,最终产生的混合密钥大约能提供高达 180 bits 的总熵值。尽管底层的生成引擎是一个使用系统时间作为种子的非密码学强度的伪随机数生成器(PRNG),但在真实的物理网络下,攻击者若想成功实施暴破,必须精准获知该脚本在目标宿主机上被首次拉起运行的精确到秒级的时间戳(以此来反推随机种子),并在此基础上获得相应的网络访问权来高频测试其伪造的鉴权 Token。对此,VulDB 官方评估给出的 3.7 分(低危 / LOW)也充分印证了该指控在现实中微乎其微的漏洞威胁性。

其他启动机制均使用密码学强度的随机源

另外两个受官方推荐并广泛采用的启动机制 —— Linux/WSL 的 start.sh 以及直接运行命令 open-webui serve —— 均采用了严格的、符合密码学强度的安全随机数生成源:start.sh 通过读取 /dev/random 文件生成;而 open-webui serve 则是通过 Python 的 random 库调用 random.randbytes(12) 派生。

适用的安全策略条款

  • 安全策略第 1 条:系统常规的配置参数以及符合协议标准的正常行为不属于安全漏洞。在系统未配置状态下的首次启动备用熵值生成,属于部署环境的配置优化范畴,不属于代码缺陷。
  • 安全策略第 6 条:被指控的漏洞分支仅在特定的未配置首次启动状态下才会触发,而在任何官方推荐的生产环境加固配置下均会被完美绕过。

漏洞披露渠道说明

该 CVE 在对外公布前,漏洞发现人曾向我们官方指定的唯一披露渠道(即 GitHub Security Advisories)提交过任何相应的技术漏洞报告。


对部署用户的实际影响

对于绝大多数用户部署实例,无需采取任何处理。 如果您当前正通过 start_windows.bat 脚本运行 Open WebUI,且在启动时确实未在系统环境变量中显式配置 WEBUI_SECRET_KEY,那么由批处理自动创建的本地密钥文件(.webui_secret_key)所提供的混合随机熵值对于绝大多数非军工级的日常业务部署而言也是固若金汤的。针对需要极高安全级别的高加固环境,请直接在环境变量中显式且手动录入 WEBUI_SECRET_KEY 变量 —— 无论您采用哪种启动脚本,这都是官方生产环境加固指南中写明的标准必配动作。


参考链接

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.