
近日,LiteLLM 被披露存在多处高危安全风险。我们在授权本地环境中对相关漏洞进行了复现验证,确认攻击者在获取低权限用户凭据后,可能沿着“虚拟 Key 路由权限绕过 → 用户角色提升 → 管理面接管 → MCP / Guardrail 执行面扩展”的路径,逐步扩大对 LiteLLM AI Gateway 的控制能力。
LiteLLM 常作为企业统一大模型 API 网关使用,位于业务应用、Agent 编排层与 OpenAI、Anthropic、Gemini、Azure OpenAI、Bedrock、私有模型等模型服务之间,集中承载模型路由、API Key 管理、用户与团队权限、成本控制、审计、MCP 工具和 Guardrail 等能力。一旦 LiteLLM 网关被接管,攻击者可能进一步触达模型 API Key、数据库连接凭据、OAuth Token、MCP 工具凭据、提示词、模型响应和 Agent 工作流,影响范围不再局限于单个接口,而可能扩展到整条企业 AI 调用链。
项目 | 结论 |
|---|---|
受影响组件 | LiteLLM 开源 AI Gateway / Proxy |
主要影响 | 权限提升、管理接口越权、MCP 测试端点命令执行、Guardrail 自定义代码沙箱绕过 |
影响版本 | 公开信息显示主要影响 LiteLLM < 1.83.14 及相关受影响分支;不同 CVE 的修复版本略有差异 |
建议修复版本 | 建议统一升级至 LiteLLM >= v1.83.14-stable 或更新版本 |
本地验证结论 | 4 个漏洞均已在授权本地测试环境完成复现或安全验证 |
本次重点关注以下 4 个漏洞:
CVE | 漏洞名称 | 风险等级 | 本地验证结论 |
|---|---|---|---|
CVE-2026-47101 | 通配路由授权绕过 / 权限提升(allowed_routes) | 高危 | 复现成功 |
CVE-2026-47102 | 字段级权限缺失导致用户角色提升(/user/update) | 高危 | 复现成功 |
CVE-2026-42271 | MCP REST 测试连接端点命令执行 / 服务端请求触发 | 高危 | 复现成功 |
CVE-2026-40217 | Guardrails Custom Code 沙箱绕过 | 高危 | 复现成功 |
LiteLLM 并不是一个普通业务系统,而是企业 AI 应用栈中的基础设施组件。它通常部署在业务应用、Agent 编排层和上游模型服务商之间,承担统一网关的角色。

从安全视角看,LiteLLM 同时具备三类高价值属性:
因此,本次漏洞的核心风险不是“某个接口返回 200”,而是低权限凭据可能被用于撬动 AI Gateway 的控制面与执行面,形成可串联的攻击链。
CVE | 关键接口 | 技术要点 | 攻击链价值 |
|---|---|---|---|
CVE-2026-47101 | /key/generate、allowed_routes | 低权限用户可创建包含通配路由的虚拟 Key,例如覆盖管理接口的路由范围 | 获得越权访问管理接口的入口 |
CVE-2026-47102 | /user/update | 接口允许用户更新自身信息,但对 user_role 等敏感字段缺少字段级权限限制 | 将普通用户提升为 proxy_admin |
CVE-2026-42271 | /mcp-rest/test/connection | MCP 测试端点接受 stdio 类配置,并在服务端侧按请求体创建临时 MCP Client | 从管理面扩展到服务端执行面 |
CVE-2026-40217 | /guardrails/test_custom_code | 自定义代码测试接口依赖手写黑名单 / 正则限制危险操作,可通过构造方式绕过 | 证明 Guardrail 沙箱边界失效 |
LiteLLM 支持通过 allowed_routes 限制虚拟 Key 能访问的接口范围。受影响版本中,服务端对低权限调用者申请高权限路由缺少充分校验,导致普通用户可创建覆盖管理面的路由 Key。
/user/update 原本用于用户信息更新,但受影响版本未严格限制可修改字段。在攻击者已经获得 /user/update 访问能力的情况下,可尝试将自身 user_role 修改为 proxy_admin。该漏洞的关键不是“能访问接口”,而是“可写字段无权限隔离”。
MCP 测试端点用于验证 MCP Server 连接,但受影响版本允许低权限用户提交 stdio 类型配置,并由 LiteLLM 服务端按配置创建临时 MCP Client。
Guardrail 自定义代码测试接口会编译并执行用户提交的代码。受影响版本依赖手写黑名单过滤危险特征,例如 import、__builtins__ 等明文关键字。公开 PoC 和本地验证均表明,基于字节码、对象反射或字符串拼接等方式可绕过该过滤逻辑。
本次漏洞最值得关注的是“可串联性”。单个漏洞已经具备较高风险,多个漏洞组合后,攻击路径会从普通 API 权限问题升级为 AI Gateway 控制面和执行面接管。

攻击链的关键变化如下:
阶段 | 攻击者能力变化 | 风险含义 |
|---|---|---|
低权限 Key | 仅能访问有限模型或用户能力 | 初始 foothold |
通配 route key | 可访问超出原权限的接口 | RBAC 边界被打破 |
修改 user_role | 从普通用户提升为管理员 | 控制面接管 |
管理 LiteLLM 配置 | 可管理 Key、模型、团队、路由 | 影响业务调用链 |
触达 MCP / Guardrail | 可尝试服务端执行或沙箱绕过 | 执行面风险扩大 |
换句话说,攻击者不需要直接攻击大模型本身,只要控制模型网关,就可能间接影响模型调用、工具调用和下游 Agent 工作流。
项目 | 内容 |
|---|---|
测试产品 | LiteLLM Proxy / AI Gateway |
复现版本 | v1.82.0 / v1.82.x |
服务地址 | http://127.0.0.1:4000 |
数据库 | PostgreSQL 本地测试库 |
测试方式 | Yakit + 本地安全 PoC,对 LiteLLM 原始 HTTP 接口进行验证 |
验证原则 | 仅在授权本地环境中验证,不对第三方目标发起测试 |
CVE | 验证结果 | 关键证据摘要 |
|---|---|---|
CVE-2026-47101 | 复现成功 | 低权限 internal_user 可创建 allowed_routes=[“/*”] 的 wildcard key,并使用该 key 访问 /user/list |
CVE-2026-47102 | 复现成功 | 具备 /user/update 路由访问能力的 key 可将自身用户角色修改为 proxy_admin,随后原始用户 key 可访问管理接口 |
CVE-2026-42271 | 复现成功 | 低权限 key 调用 MCP REST 测试端点后,本地 callback 收到 LiteLLM 服务端侧访问 |
CVE-2026-40217 | 复现成功 | /guardrails/test_custom_code 返回 sandbox_escape=true,证明自定义代码沙箱可被绕过 |
CVE-2026-47102:/user/update 角色提升
低权限用户访问用户管理接口返回未授权:

具备 /user/update 路由访问能力后,尝试修改自身角色:

角色提升后,原始用户 key 可访问用户管理接口。

CVE-2026-47101:通配 route key 越权
低权限用户创建 wildcard route key:

使用 wildcard key 访问管理员接口。

CVE-2026-42271:MCP REST 测试端点服务端触发
低权限 key 调用 MCP REST 测试端点:

服务端侧触发测试行为 / callback 命中:

CVE-2026-40217:Guardrail 自定义代码沙箱绕过
/guardrails/test_custom_code 返回沙箱绕过验证结果。

若攻击者成功利用上述漏洞链,可能造成:
传统 Web 漏洞通常影响某个业务接口,而 AI Gateway 漏洞影响的是“模型调用入口”。在企业 AI 架构中,LiteLLM、vLLM、Ollama、ModelScope 等组件构成 AI 基础设施核心。
这些组件具备共同特征:
特征 | 安全含义 |
|---|---|
部署在核心链路 | 一旦失守,影响多个业务系统 |
持有模型和工具凭据 | 凭据泄露后可直接造成经济和数据风险 |
连接 Agent 插件(MCP) | 攻击面从 API 扩展到工具调用和自动化流程 |
权限模型复杂 | 容易出现路由、角色、字段级权限缺口 |
资产盘点不足 | 漏洞爆发后难以及时判断影响范围 |
本次 LiteLLM 漏洞链说明:攻击者不一定需要直接攻破大模型本身,也不一定需要突破业务后端。只要掌握 AI 调用链中的网关组件,就可能间接控制模型访问、工具调用和 Agent 行为。
检查 LiteLLM 版本:
litellm --version或检查 Python 包版本:
python -m pip show litellm建议统一升级至:
LiteLLM >= v1.83.14-stable升级后建议重新验证:
allowed_routes=[“/*”] 的 Key;/user/update 修改 user_role;/user/list 等管理接口;stdio 命令类配置;重点检查虚拟 Key 中是否存在异常路由配置:
allowed_routes = [“/*”]
allowed_routes 包含 /user/*
allowed_routes 包含 /key/*
allowed_routes 包含 /guardrails/*
allowed_routes 包含 /mcp-rest/*重点关注异常角色变化:
internal_user -> proxy_admin
internal_user_viewer -> proxy_admin
普通用户短时间内调用 /user/update 后角色发生变化如发现低权限用户创建了包含管理接口或通配符的 Key,应立即禁用并追踪来源。
建议搜索以下敏感接口访问记录:
POST /key/generate
POST /user/update
GET /user/list
POST /mcp-rest/test/connection
POST /mcp-rest/test/tools/list
POST /guardrails/test_custom_code重点关注连续行为链:
/key/generate -> /user/update -> /user/list
/key/generate -> /mcp-rest/test/connection
/key/generate -> /guardrails/test_custom_code类型 | 建议 |
|---|---|
版本修复 | 尽快升级至官方修复版本,建议 v1.83.14-stable 或更新 |
Key 审计 | 禁用异常 wildcard key,收敛 allowed_routes 到最小必要范围 |
管理面隔离 | 管理接口仅允许管理员角色和管理网段访问,避免暴露公网 |
高危能力收敛 | 如非必要,关闭 MCP 测试端点、Guardrail 自定义代码测试、Pass-through 管理能力 |
凭据轮换 | 如怀疑已被利用,轮换 master key、模型 API Key、数据库凭据、OAuth Token、MCP 工具凭据 |
审计增强 | 记录用户、Key、路由、来源 IP、请求 ID、角色变更和 Key 创建事件 |
基线建设 | 将 AI Gateway、MCP Server、Agent 插件、向量数据库纳入 AI 组件 SBOM 和持续监测 |
可基于 HTTP 日志、网关日志、审计日志和数据库变更记录增加如下检测逻辑:
规则 1:低权限用户调用 POST /key/generate 且请求体包含 allowed_routes
规则 2:allowed_routes 包含 /*、/user/*、/key/*、/guardrails/*、/mcp-rest/*
规则 3:POST /user/update 请求体包含 user_role=proxy_admin
规则 4:非管理员 Key 调用 /user/update 并修改 user_role 字段
规则 5:同一用户短时间内连续出现 /key/generate、/user/update、/user/list
规则 6:低权限用户访问 /mcp-rest/test/connection 或 /mcp-rest/test/tools/list
规则 7:MCP 测试请求中出现 transport=stdio、command、args、env 字段
规则 8:访问 /guardrails/test_custom_code 且 custom_code 出现对象反射、字节码、dunder 字符串拼接等高危特征
规则 9:非管理员用户短时间内创建多个虚拟 Key 或修改多个路由范围
规则 10:LiteLLM 进程出现异常外联、异常子进程或未知 MCP 工具注册行为我们已基于本地复现链路沉淀自研检测规则,可用于 LiteLLM 相关访问日志、网关日志和主机行为日志的威胁狩猎与持续监测。如有需要,可进一步提供 AI 基础组件漏洞情报监测与风险排查服务。
如发现疑似利用行为,建议按以下顺序处置:
本文由云鼎实验室基于团队漏洞情报能力与授权本地复现验证整理。团队主要聚焦 AI 基础设施、AI Agent、MCP 生态、模型网关、AI 组件供应链等方向的安全研究与漏洞情报分析。

END
更多精彩内容点击下方扫码关注哦~
关注云鼎实验室,获取更多安全情报
