LiteLLM CVE-2026-42271:MCP 测试端点串联为未授权 RCE
四月披露时只是一个需认证的命令注入,LiteLLM 的 MCP 预览端点一旦与 Starlette 的 BadHost 绕过串联,便成为未授权 RCE——2026 年 6 月 8 日被 CISA 列入 KEV。
这是什么?
2026 年 6 月 8 日,CISA 将 CVE-2026-42271 加入其”已知被利用漏洞”(KEV)目录,确认 LiteLLM 中的一个命令注入缺陷正在被实际利用。LiteLLM 是广受使用的开源 AI 网关,将众多模型提供商统一在单一的 OpenAI 兼容 API 之后。美国联邦民事机构被要求在 2026 年 6 月 22 日前完成修复。
值得关注的不是这个漏洞本身,而是它的串联。CVE-2026-42271 在 2026 年 4 月被公开披露时只是一个需认证的命令注入。2026 年 6 月 1 日,Horizon3.ai 的研究人员证明:将其与 CVE-2026-48710——Starlette 的”BadHost”主机头校验绕过——串联后,认证要求被完全消除,把一个仅限管理员的缺陷变成未授权远程代码执行,组合 CVSS 评分高达 10.0。这是一个月内第二个被列入 KEV 的 LiteLLM 缺陷,前一个是 CVE-2026-42208 SQL 注入。
工作原理
脆弱面是 LiteLLM 的 MCP 服务器预览功能。两个用于在保存前测试 MCP 服务器的端点——
POST /mcp-rest/test/connection
POST /mcp-rest/test/tools/list
——在请求体中接受完整的服务器配置,包括 stdio 传输所用的 command、args 和 env 字段。当端点尝试”连接”时,它会在代理主机上以 LiteLLM 进程的权限将所给命令作为子进程启动。这些端点仅由有效的代理 API 密钥保护,没有角色检查:任何已认证用户——哪怕持有低权限的内部用户密钥——都可以在主机上执行命令。这与我们在 MCP stdio 传输 RCE 中分析的stdio 传输启动进程的设计隐患如出一辙。
串联填补了最后一道缺口。BadHost(CVE-2026-48710)是 Starlette ≤ 1.0.0 中的主机头校验绕过;Starlette 是 LiteLLM 用来处理 HTTP 的 ASGI 框架。当认证依赖于主机/来源检查时,BadHost 可以绕过它们——于是”需要密钥”这一前提随之消失。
# 仅为概念示意——无可用 payload。
攻击者 --> [BadHost 主机头绕过] # CVE-2026-48710:跳过认证
--> POST /mcp-rest/test/connection # CVE-2026-42271:stdio 配置
--> 以 LiteLLM 代理身份运行子进程 # 在主机上执行命令
成功利用可让攻击者在网关主机上执行命令,读取模型提供商凭据和代理存储的 API 密钥,并向相连的 AI 基础设施横向移动。
为何重要
AI 网关在设计上就是高价值目标:它集中了某组织所用全部模型提供商的密钥,并位于大量内部流量的链路之上。此处的未授权 RCE 是凭据窃取与横向移动的引擎,而不仅是单台主机的沦陷。触发点是一项便利功能——在保存前预览 MCP 服务器——许多运维人员并不会将其视为安全敏感点,这进一步扩大了暴露面。
请注意两个 CVE 在已确认状态上的差异:CISA 确认 CVE-2026-42271 本身正在被实际利用,但截至披露时,没有公开证据表明攻击者在同一波攻击中使用了 BadHost 绕过。防御方应假定该串联可行并同时修补两者,而非等待这一确认。
防御措施
- 同时修补两个组件。 将 LiteLLM 升级到 v1.83.7 或更高版本(它将测试端点限制为
PROXY_ADMIN角色并更新了 Starlette),将 Starlette 升级到 v1.0.1 或更高版本。 - 若无法立即修补: 阻断对
/mcp-rest/test/connection和/mcp-rest/test/tools/list的外部访问,将网关限制在可信网络分段内,并轮换代理持有的所有凭据——假定密钥已经暴露。 - 不要将网关暴露在互联网上。 持有提供商密钥的 AI 代理应处于认证与网络控制之后,而非公网 IP 之上。
- 排查 Horizon3 公布的 IOC: 对两个 MCP 测试端点的请求、异常的
Host头取值(可能是 BadHost 滥用),以及 LiteLLM 进程意外启动的子进程。 - 将 stdio 传输配置视同代码执行。 任何接受
command/args并启动子进程的功能都是 RCE 原语;应以强授权加以保护,绝不能仅靠 API 密钥。
状态
| 项目 | 详情 |
|---|---|
| CVE-2026-42271 | LiteLLM MCP 测试端点的命令注入(原先需认证) |
| CVE-2026-48710 | Starlette “BadHost” 主机头校验绕过(≤ 1.0.0) |
| 串联 CVSS | 10.0(未授权 RCE),据 Horizon3.ai |
| 受影响 | LiteLLM 1.74.2–1.83.6;Starlette ≤ 1.0.0 |
| 修复版本 | LiteLLM v1.83.7;Starlette v1.0.1 |
| 披露时间 | CVE-2026-42271:2026 年 4 月 · BadHost:2026 年 5 月 26 日 · 串联:2026 年 6 月 1 日 |
| KEV/期限 | 2026 年 6 月 8 日列入 CISA KEV;联邦机构须于 6 月 22 日前修复 |
Sources
- → https://horizon3.ai/attack-research/vulnerabilities/cve-2026-42271-chained-with-cve-2026-48710/
- → https://www.helpnetsecurity.com/2026/06/09/litellm-vulnerability-under-active-attack-cisa-warns-cve-2026-42271/
- → https://github.com/BerriAI/litellm/security/advisories/GHSA-v4p8-mg3p-g94g
- → https://thehackernews.com/2026/06/litellm-flaw-cve-2026-42271-exploited.html
- → https://ostif.org/disclosing-the-badhost-vulnerability-in-starlette/