首页 网络安全 正文
  • 本文约1147字,阅读需6分钟
  • 22
  • 0

Flowise远程代码执行漏洞CVE-2025-59528

Flowise是一个拖放式用户界面,用于构建定制的大型语言模型流,是开源UI可视化工具,用于使用LangchainJS构建自定义的LLM工作流。

Flowise不以创建应用为目标,而是创建Chatflow Agent为目标,利用可视化界面来创建和编辑工作流,使得整个过程更加直观和易于理解。

一、基本情况

Flowise可以创建一个工作流,该工作流定义了机器人如何处理输入、调用LLM以生成回复,以及如何处理LLM的输出以生成最终的回复。

Flowise远程代码执行漏洞CVE-2025-59528

栋科技漏洞库关注到 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

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接