Flowise远程代码执行漏洞CVE-2025-59528
Flowise是一个拖放式用户界面,用于构建定制的大型语言模型流,是开源UI可视化工具,用于使用LangchainJS构建自定义的LLM工作流。
Flowise不以创建应用为目标,而是创建Chatflow Agent为目标,利用可视化界面来创建和编辑工作流,使得整个过程更加直观和易于理解。
一、基本情况
Flowise可以创建一个工作流,该工作流定义了机器人如何处理输入、调用LLM以生成回复,以及如何处理LLM的输出以生成最终的回复。
栋科技漏洞库关注到 Flowise 受影响版本中存在一个安全漏洞,该漏洞现在已经被追踪为CVE-2025-59528,漏洞的CVSS 3.X评分为10。
二、漏洞分析
CVE-2025-59528漏洞位于Flowise在3.0.5版本中,该漏洞的存在使得其容易受到远程代码执行的攻击,不过该漏洞已在3.0.6版本中修复。
CustomMCP节点允许用户输入连接到外部MCP服务器的配置设置,此节点解析用户提供mcpServerConfig字符串以构建MCP服务器配置。
然而,在此过程中,CustomMCP (Model Context Protocol) 节点执行JavaScript代码而不进行任何安全验证。
在convertToValidJSONString函数中,用户输入直接传递给function()构造函数,该构造函数将输入作为JavaScript代码进行计算和执行。
由于它以完整的Node.js运行时权限运行,因此可以访问child_process和fs等危险模块。
该漏洞可能导致全面系统接管和基础设施威胁,由于只需要API令牌,对业务连续性和客户数据构成了极大的安全风险。
允许攻击者在Flowise服务器上执行任意JavaScript代码,导致:全系统妥协、文件系统访问、命令执行、敏感数据泄露。
漏洞流
1、接收的用户输入:
通过API端点/API/v1/node-load-method/customMCP通过mcpServerConfig参数提供输入。
2、变量替换:
substituteVariablesInString函数替换模板变量,如$vars.xxx,但在此步骤中不应用安全过滤。
3、危险代码执行:
convertToValidJSONString函数使用function('reurn'+inputString)()执行输入。
如果inputString包含恶意代码,它将在全局Node.js上下文中执行,允许执行命令和访问文件系统等操作。
三、POC概念验证


执行时,这将在服务器上创建一个文件/tmp/RCE.txt,确认命令执行。
四、影响范围
Flowise <= 3.0.5
五、修复建议
Flowise >= 3.0.5
六、参考链接
