LiteLLM CVE-2026-42208:AI 网关中的未授权 SQL 注入
2026 年 4 月 20 日披露,全球公告索引后 36 小时即遭利用。CVE-2026-42208 将 LiteLLM 的 Authorization 头部变成对网关所代理的每一个上游模型凭据的直接读取入口。
CVE-2026-42208 是什么?
CVE-2026-42208(GHSA-r75f-5x8p-qvmc,CVSS 9.3)是 LiteLLM 中的一个未授权 SQL 注入漏洞。LiteLLM 是一款拥有超过 22,000 GitHub 星标的开源 OpenAI 兼容代理,作为 OpenAI、Anthropic、Bedrock 等数十家模型提供商的前端使用。维护方公告于 2026 年 4 月 20 日 发布,补丁随 v1.83.7 于 4 月 19 日上线,该条目于 2026 年 4 月 24 日 镜像至全球 GitHub Advisory Database。Sysdig 威胁研究团队在 36 小时 7 分钟 后(4 月 26 日 04:24 UTC)观察到首次定向利用尝试。CISA 于 2026 年 5 月 8 日将其加入 Known Exploited Vulnerabilities 已知被利用漏洞目录。
工作原理
在受影响版本(v1.81.16 至 v1.83.6)中,代理的 API 密钥校验路径将 Authorization: Bearer 头部的取值直接拼接进对 LiteLLM_VerificationToken 表的 SELECT 查询,完全没有使用参数绑定。校验在身份认证决策之前执行,因此任何能够访问代理端口的客户端,都可以驱动任意 SQL 语句。
Sysdig 在野外记录到的载荷形态非常直接:
POST /chat/completions HTTP/1.1
Authorization: Bearer sk-litellm' UNION SELECT api_key,NULL,NULL,NULL,NULL FROM "LiteLLM_VerificationToken"--
User-Agent: Python/3.12 aiohttp/3.9.1
sk-litellm' 前缀并非真实密钥——末尾的单引号闭合 SQL 字面量,使 UNION 子句作用于被泄露的列。两个攻击者细节对防御方意义重大。第一,攻击者已知 Prisma 生成的 PascalCase 标识符("LiteLLM_VerificationToken"),这说明其在动作前阅读过 LiteLLM 的开源 Schema。第二,首轮请求即精准命中代理上价值最高的三张表:LiteLLM_VerificationToken(虚拟密钥与 master key)、litellm_credentials.credential_values(上游模型提供商原始凭据)以及 litellm_config.config_value WHERE param_name='environment_variables'(代理运行时环境,通常包含 PostgreSQL DSN 与 webhook URL)。
修复仅需一行:把字符串拼接换成参数化查询。该改动随 v1.83.7 发布,维护者目前推荐 v1.83.10-stable。
为什么这件事很重要
针对普通 Web 应用的 SQL 注入泄露的是数据行。针对 AI 网关的 SQL 注入泄露的是它所代理的每一个模型账户的密钥。一行 litellm_credentials 通常承载一把月度配额可达五位数美元的生产环境 OpenAI 组织密钥、一把拥有 workspace-admin 权限的 Anthropic 控制台密钥,以及一把 AWS Bedrock 的 IAM 凭据。被盗后,这些密钥可以从任意 IP 重放到 /chat/completions——LiteLLM 默认不将密钥绑定到调用源。其影响半径更接近一次云账户失陷,而不是一次普通的 Web SQL 注入。
三个更宏观的模式值得关注,它们与 LMDeploy SSRF(CVE-2026-33626) 及 2026 年更大范围的 AI 基础设施 CVE 浪潮一脉相承:
- AI 网关已成为一级凭据面。 它们把原本散落在不同信任边界后的提供商秘密集中到了一处。
- 利用窗口正在收窄。 从公告发布到带 Schema 知识的利用仅 36 小时,且无需公开 PoC。仅以 CISA KEV 为触发源的防御流水线根本来不及响应。
- Schema 知识先于 Payload。 开源 ORM 把攻击者所需的表名公开放在网上,侦察成本趋近于零。
防御措施
按紧急程度排序的具体步骤:
- 立即升级至
v1.83.10-stable(或任何>= v1.83.7的版本)。若打补丁受阻,把代理置于反向代理之后,拒绝任何Authorization头中包含单引号、括号或UNION、SELECT、FROM、--关键字的请求。 - 将数据库视为已被攻陷——只要受影响版本曾对外网开放。轮换所有虚拟密钥、master key 以及所有存储的上游提供商凭据。审计上游账单平台,查找来自陌生源 IP 的
/chat/completions流量。 - 把代理移出公网。 AI 网关聚合的凭据价值已经高到不再允许默认直连互联网——前置 mTLS 或企业身份感知代理。
- 把密钥绑定到调用源。 如果平台支持,把虚拟密钥限制到预期的客户端 IP 或服务身份上,这样被外泄的密钥就不再能与合法调用方互换使用。
- 监控请求特征。 任何一次
Authorization: Bearer sk-litellm'请求都是高置信度的入侵指标。Sysdig 给出的 IOC 涵盖两个源 IP:65.111.27.132与65.111.25.67(AS200373)。 - 盘点网关资产面。 业务团队常常在标准安全评审之外自行部署 LiteLLM、OpenLLM 等工具,务必在第三方先一步找到它们之前完成盘点。
状态
| 项目 | 日期 | 状态 |
|---|---|---|
补丁发布(v1.83.7) | 2026 年 4 月 19 日 | 公开 |
| 维护方公告(GHSA) | 2026 年 4 月 20 日 | 公开 |
| 全球 GHSA 数据库索引 | 2026 年 4 月 24 日 | 公开 |
| 首次利用尝试被观察到 | 2026 年 4 月 26 日 | 公开(Sysdig) |
| LiteLLM 博客文章 | 2026 年 4 月 29 日 | 公开 |
| 加入 CISA KEV 目录 | 2026 年 5 月 8 日 | 公开 |
| 推荐版本 | v1.83.10-stable | 当前 |
结论虽不舒服却很可操作:在 2026 年 5 月,任何运行受影响版本、且暴露在互联网上的 LLM 网关都应被视为已被攻陷,而不仅仅是存在漏洞。
Sources
- → https://www.sysdig.com/blog/cve-2026-42208-targeted-sql-injection-against-litellms-authentication-path-discovered-36-hours-following-vulnerability-disclosure
- → https://docs.litellm.ai/blog/cve-2026-42208-litellm-proxy-sql-injection
- → https://github.com/BerriAI/litellm/security/advisories/GHSA-r75f-5x8p-qvmc
- → https://bishopfox.com/blog/cve-2026-42208-pre-authentication-sql-injection-in-litellm-proxy
- → https://www.bleepingcomputer.com/news/security/hackers-are-exploiting-a-critical-litellm-pre-auth-sqli-flaw/