系统:运行中
← 返回所有攻击
INFRASTRUCTURE CRITICAL NEW

LiteLLM CVE-2026-42208:AI 网关中的未授权 SQL 注入

2026 年 4 月 20 日披露,全球公告索引后 36 小时即遭利用。CVE-2026-42208 将 LiteLLM 的 Authorization 头部变成对网关所代理的每一个上游模型凭据的直接读取入口。

2026-05-25 // 6 min affects: litellm-proxy, openai-compatible-gateways, ai-inference-infrastructure

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.16v1.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 头中包含单引号、括号或 UNIONSELECTFROM-- 关键字的请求。
  • 将数据库视为已被攻陷——只要受影响版本曾对外网开放。轮换所有虚拟密钥、master key 以及所有存储的上游提供商凭据。审计上游账单平台,查找来自陌生源 IP 的 /chat/completions 流量。
  • 把代理移出公网。 AI 网关聚合的凭据价值已经高到不再允许默认直连互联网——前置 mTLS 或企业身份感知代理。
  • 把密钥绑定到调用源。 如果平台支持,把虚拟密钥限制到预期的客户端 IP 或服务身份上,这样被外泄的密钥就不再能与合法调用方互换使用。
  • 监控请求特征。 任何一次 Authorization: Bearer sk-litellm' 请求都是高置信度的入侵指标。Sysdig 给出的 IOC 涵盖两个源 IP:65.111.27.13265.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