CVE-2026-45400Open WebUI是一个旨在完全离线运行的自托管人工智能平台。在0.9.5版本之前,该组件存在一个严重的安全漏洞。由于Python标准库中的`urlparse`与第三方库`requests`在处理URL解析时存在逻辑差异,导致系统未能正确过滤用户提交的链接。这一差异使得攻击者能够构造特殊的恶意URL,从而绕过服务器端的SSRF(服务端请求伪造)防御机制。成功利用此漏洞可能导致攻击者访问内部网络资源、扫描内网端口或窃取敏感元数据。该漏洞已被官方在0.9.5版本中修复。
该漏洞的根本原因在于Open WebUI对URL的校验逻辑与实际请求逻辑不一致。应用程序在验证用户输入的URL安全性时,使用了Python的`urlparse`函数来提取并检查主机名。然而,在后续发起HTTP请求时,使用了`requests`库。这两个库对URL的标准化处理存在差异,特别是在处理包含认证信息、特殊字符(如`@`、`#`)或非标准编码的URL时。攻击者可以利用这种差异构造攻击载荷,例如使用`http://127.0.0.1#@attacker.com`这种格式。在这种场景下,`urlparse`可能将主机名解析为`attacker.com`从而通过白名单校验,而`requests`库在实际建立TCP连接时,可能会忽略`#`后的片段或优先处理前面的IP,直接连接到`127.0.0.1`。这种解析歧义使得原本针对SSRF的防御失效,从而允许攻击者向内网地址发送请求。