摘要: CVE‑2026‑59822 是 LiteLLM MCP Streamable HTTP 端点中的高危认证绕过问题,官方安全公告确认受影响版本为 1.84.0 之前,1.84.0 及以上已修复。风险核心不是模型回答错误,而是 MCP 认证链在 OAuth2 passthrough fallback 场景中可能错误接受不可信授权信息,使未通过有效 LiteLLM 身份验证的请求接近受保护工具。本文提供一套防御性处置流程:确认资产和版本、临时隔离 MCP 路由、备份配置、升级并校验软件供应链、用正反向用例验证认证、检查日志和轮换凭据,最后完成灰度恢复。全文不提供可直接利用漏洞的请求载荷,适合 LiteLLM 管理员、MCP 平台团队、DevSecOps 和企业安全人员直接照做。
核心结论
CVE‑2026‑59822 应按紧急安全升级处理:所有运行 LiteLLM < 1.84.0 且开放 MCP Streamable HTTP 相关路由的环境,都应先限制暴露面,再升级到 1.84.0 或更高稳定版本,并通过认证失败、合法访问和权限边界三类测试确认修复。
- 官方确认影响范围为
< 1.84.0,修复范围为>= 1.84.0。 不要只改配置或刷新密钥来代替代码升级。 - 官方严重度为 High,CVSS 4.0 评分 8.8。 公告给出的攻击向量为网络、复杂度低、无需权限和用户交互,应优先处理互联网或跨网段可达实例。
- 临时缓解是关闭或阻断 MCP 路由。 无法立即升级时,在反向代理/API Gateway 阻断
/mcp/及相关 MCP 端点,并验证阻断确实发生在 LiteLLM 之前。 - 升级成功不等于风险结束。 还要检查历史访问、撤销可能暴露的 OAuth/MCP/API 凭据,并验证未认证请求稳定返回拒绝结果。
- 不要在生产环境复现攻击。 使用隔离测试环境和无害验证用例,避免调用真实邮件、文件、数据库、发布或基础设施工具。
漏洞是什么:认证链中的 fallback 为什么危险
LiteLLM 可作为模型代理和 AI Gateway,同时把 MCP 服务暴露给客户端。一个典型请求会先经过网络入口、LiteLLM 身份验证、MCP 路由、OAuth2 或上游认证,再到具体工具。每一层本应明确判断“调用者是谁、是否允许访问这个 MCP Server、是否允许调用这个工具”。
CVE‑2026‑59822 的官方标题是“MCP Authentication Bypass via OAuth2 Passthrough Fallback”。按公告描述,问题位于 MCP Streamable HTTP 端点的 OAuth2 passthrough fallback 逻辑:特制的 Authorization 信息可能触发错误回退,让请求绕过有效 LiteLLM Key 的要求。这类缺陷的危险之处,是网关可能把“存在 Authorization 头”或“需要交给上游处理”的状态,误当成“LiteLLM 已验证调用者”。
本文不会给出构造方式、原始攻击请求或绕过字段组合。防守方只需知道:如果版本低于修复线并启用了相关 MCP 路径,应视为认证边界不可靠。实际影响还取决于 MCP 路由是否可达、上游工具权限、网络分区、凭据范围和审计能力。
| 判断项 | 高风险表现 | 风险较低但仍需升级 | 管理动作 |
|---|---|---|---|
| LiteLLM 版本 | < 1.84.0 |
>= 1.84.0 但未验证 |
固定镜像或包版本并留存证据 |
| MCP 路由 | 互联网或多租户网络可达 | 仅受控内网可达 | 临时阻断并检查真实入口 |
| 工具权限 | 邮件、文件、数据库、部署、Secrets | 只读测试工具 | 收缩 Scope、加入人工审批 |
| 凭据 | 长期共享 Token、管理员权限 | 短期且最小权限 | 撤销、轮换、审计使用记录 |
| 日志 | 不记录身份与工具调用 | 结构化审计齐全 | 保存证据,避免记录秘密内容 |

先检查:哪些实例真正受影响
第一步不是直接在所有主机执行升级,而是建立准确资产清单。LiteLLM 可能以 Python 包、Docker、Helm、Kubernetes Deployment、Compose、systemd 服务或托管镜像运行;控制台显示的版本也可能和实际 Pod 镜像不同。
Python 环境检查
在拥有维护授权的主机或容器内执行只读版本检查:
python -m pip show litellm
python -c "import litellm; print(litellm.__version__)"
如果命令来自不同虚拟环境,结果可能不一致。还应查看进程实际使用的 Python、容器镜像和锁文件,而不是仅检查管理员终端的全局包。
Docker 与 Kubernetes 检查
docker inspect YOUR_LITELLM_CONTAINER --format '{{.Config.Image}}'
kubectl -n YOUR_NAMESPACE get deploy,pod -o wide
kubectl -n YOUR_NAMESPACE get deploy YOUR_DEPLOYMENT -o jsonpath='{.spec.template.spec.containers[*].image}'
版本标签如果是 latest、main 或可变标签,不能作为可靠证据。应记录镜像完整名称和 digest,并确认所有副本都已更新。Kubernetes 中还要检查旧 ReplicaSet、CronJob、临时调试 Pod 和灾备集群。
MCP 暴露面检查
检查反向代理、Ingress、API Gateway、WAF 和 Service 定义,确认 /mcp/ 及相关路径能否从互联网、办公网、CI 网段或合作方网络访问。不要把“Service 是 ClusterIP”直接等同于不可达,其他网关或端口转发仍可能暴露它。
紧急缓解:升级前先缩小窗口
官方公告给出的临时方案是禁用 MCP 路由,或在反向代理/API Gateway 阻断 /mcp/ 及相关 MCP 端点。这是止血措施,不是永久修复。
建议按以下顺序执行:
- 冻结配置变更。 暂停新增 MCP Server、OAuth Client、团队和路由,保留当前配置、镜像 digest 与审计日志。
- 限制外部入口。 在最靠外的受控代理层阻断 MCP 路径;若业务必须保留,至少限制到管理 VPN、跳板网络或明确客户端 IP。
- 停用高风险工具。 临时关闭发送邮件、修改仓库、访问生产数据库、部署、删除文件和读取 Secrets 的 MCP 工具。
- 缩短凭据有效期。 撤销共享的长期 OAuth Token、LiteLLM Key 与服务账户凭据,换成短期最小权限凭据。
- 验证阻断。 从外部和内部两个网络位置确认请求在代理层被拒绝,并检查 LiteLLM 后端没有收到对应流量。
反向代理规则因产品而异,下面只表达安全意图,并非可直接复制到任何生产环境的完整配置:
#临时缓解说明:在升级完成前阻断 MCP 路由
location ^~ /mcp/ {
return 403;
}
若部署使用不同根路径、重写规则或多个 MCP 入口,必须按实际路由补齐。阻断规则应经过变更审批,并准备回滚时间和负责人。
完整升级:从 1.84.0 起步,而不是停在最低线
官方修复线是 1.84.0,但当前生产环境通常应选择组织批准的、更高稳定版本,而非机械安装最低修复版本。原因是后续版本可能包含新的安全与兼容性修复;同时大版本跨度也可能带来 breaking changes。LiteLLM v1.84.0 发布页明确提示该版本包含破坏性变更,因此升级前必须阅读发行说明并在预生产环境验证。
Python 包升级
python -m pip install --upgrade "litellm>=1.84.0"
python -m pip show litellm
生产环境应在锁文件中固定已评审的精确版本,并使用内部包仓库或可信镜像源。升级命令只是示例,不能代替依赖解析、SBOM 和回归测试。
Docker 镜像升级
docker pull ghcr.io/berriai/litellm:v1.84.0
docker image inspect ghcr.io/berriai/litellm:v1.84.0 --format '{{json .RepoDigests}}'
官方发布页说明 LiteLLM Docker 镜像使用 cosign 签名,并提供基于固定提交中的公钥验证方式。企业应把镜像签名、digest、SBOM 和漏洞扫描纳入部署 Gate。不要从未知镜像仓库拉取同名镜像,也不要仅凭标签判断内容未被替换。
Kubernetes 灰度升级
- 在测试命名空间部署固定版本镜像和 digest。
- 导入生产等价但已脱敏的 MCP 配置。
- 验证数据库迁移、缓存、代理认证、OAuth 回调和 MCP 工具列表。
- 先升级一个 Canary Pod,只接收内部测试流量。
- 观察认证拒绝率、5xx、延迟、OAuth 错误和工具调用审计。
- 分批扩大副本,确认旧 ReplicaSet 不再接收请求。
- 保留经验证的前一版镜像和配置快照,用于功能回滚;安全回滚不得回到已知易受攻击版本并重新开放 MCP。
如何安全验证补丁确实生效
验证目标不是“复现漏洞成功”,而是证明认证与授权边界按预期工作。应在隔离环境使用无害 MCP Server,工具只返回固定字符串,不连接生产系统。
建立四组测试:
- 无凭据请求。 对受保护 MCP 路由不携带认证信息,期望稳定返回 401 或 403,且不会到达上游工具。
- 无效凭据请求。 使用随机、过期或撤销的测试 Token,期望被 LiteLLM 认证层拒绝;日志不得把它记录为已认证身份。
- 合法最小权限请求。 使用有效测试 Key 和匹配 Scope 的 OAuth 凭据,期望只看到允许的 MCP Server 与无害工具。
- 越权请求。 使用只读身份尝试调用未授权测试工具,期望授权层拒绝,并生成包含身份、路由和决策的审计记录。
可以用不包含攻击构造的探针进行基线验证:
curl --fail-with-body --max-time 10 \
-H "Authorization: Bearer INVALID_TEST_TOKEN" \
"https://YOUR_LITELLM_DOMAIN/mcp/YOUR_TEST_SERVER"
期望是明确拒绝,而不是 2xx、工具列表或上游响应。路径应替换为企业自己的无害测试端点。不要把该探针指向生产高权限 MCP Server。

日志排查、凭据轮换与事件响应
如果易受影响实例曾被不可信网络访问,应按潜在安全事件处理。优先保存反向代理、WAF、LiteLLM、OAuth Provider、MCP Server 和下游工具日志,并记录时间同步状态。查找异常认证失败后出现的成功调用、未知来源、异常工具枚举、短时间多路由探测以及与正常用户不匹配的 OAuth 活动。
日志调查不要依赖单一状态码:代理重写、流式连接和上游错误可能改变响应。应关联请求 ID、调用者身份、MCP Server、工具名、授权决策和下游操作结果。若日志无法证明未发生越权,应采用保守假设,轮换可能接触到的 LiteLLM Master Key、Virtual Key、OAuth Client Secret、Refresh Token、MCP 服务凭据和云服务账户。
轮换顺序要避免业务中断:先创建新凭据并限制 Scope,再更新 LiteLLM 或 Secret Manager,验证新链路,最后撤销旧凭据。密钥不得写入升级脚本、Shell 历史、工单或文章示例。使用 YOUR_TOKEN 等占位符,并通过 Secret Manager 动态注入。
如发现未经授权的邮件发送、文件修改、数据库查询、发布或权限变更,立即启用 Kill Switch,停用相关 MCP 工具并通知事件响应、法务和业务负责人。所有恢复动作都应可审计,高风险变更需要人工审批。
修复后的长期加固
补丁只能修复已知实现缺陷,不能替代纵深防御。MCP 工具天然把模型输出连接到真实操作,仍面临 Prompt Injection、过度权限、参数注入、无限循环、重试放大和第三方服务失控。
建议采用以下控制:MCP 路由不直接暴露公网;LiteLLM Key 与 OAuth Token 分离;每个团队和 Agent 使用独立短期凭据;工具按读写分组;删除、发布、付款、邮件、账户和生产数据库操作需要人工审批;参数使用严格 JSON Schema;设置请求超时、重试上限、幂等键和预算;记录授权决策而不记录秘密内容;建立一键禁用单个 MCP Server 的 Kill Switch。
把认证与授权分成不同的测试门
长期治理中最重要的改进,是不要再把“请求带有 Token”“上游接受 OAuth”“用户登录成功”视为同一个结论。认证只回答调用者身份,授权还要判断该身份能否访问目标 MCP Server、列出哪些工具、使用何种参数以及调用次数。建议在 CI 中分别建立匿名拒绝、无效凭据拒绝、跨团队拒绝、跨工具拒绝和合法最小权限放行测试;任何一类失败,都应阻止镜像进入生产。
多租户环境还要验证缓存键包含租户、用户、服务器和 Scope,避免一个身份的认证或工具列表被另一个身份复用。MCP Server 返回的新工具不能自动获得生产权限,而应进入待审批状态。管理员修改工具权限、OAuth配置和公共路由时,应触发双人复核并记录前后差异。
供应链和发布过程同样需要加固
安全升级过程中容易出现“为了追补丁而跳过供应链校验”的反效果。建议从官方仓库或企业镜像库获取包和镜像,固定版本与 digest,保存签名验证结果和 SBOM,并在部署前扫描已知漏洞。CI 使用的 PyPI、GitHub、容器仓库和扫描器凭据应为短期令牌,发布账户启用强认证,避免攻击者把恶意构件伪装成修复版。
对于 Python 部署,应锁定直接和传递依赖并在干净环境重建;对于容器部署,不要在运行中临时 pip install 修改镜像。升级证据至少应包含来源、版本、digest、签名状态、构建时间、部署批次和批准人,以便发生异常时快速定位受影响副本。
监控应关注“授权决策”而非只看流量
普通可用性监控只能看到请求量和状态码,无法证明工具调用符合权限。建议为每次 MCP 调用生成关联 ID,记录经过脱敏的调用者、团队、MCP Server、工具、授权结果、策略版本和审批编号。对匿名请求突然增加、同一来源枚举多个服务器、拒绝后立即更换身份、低权限账户调用高风险工具等行为设置告警。
日志本身也要受保护:不得记录完整 Authorization Header、Refresh Token、工具返回的客户数据或模型 Prompt。安全团队应定期验证脱敏规则,并为日志查询设置最小权限和留存期限,避免修复认证绕过后又通过日志系统泄露凭据。
想继续完善网关安全,可参考 AI Stack Nav 的 MCP 权限与网关治理专题,以及 AI Agent 沙箱与网络隔离专题。
回滚、成本与限制
升级可能影响 OAuth、MCP 路由或其他代理功能,因此必须准备功能回滚;但安全事件中不能把流量恢复到 < 1.84.0 且重新开放 MCP。更安全的回退是保持 MCP 路由关闭,回到兼容的已修复版本,或让业务暂时使用只读替代流程。
修复的主要成本来自测试、窗口协调、凭据轮换和审计,而不是软件许可证。多副本、跨区域和大量 MCP Server 会增加验证工作量。自动扫描可能出现镜像标签与运行 digest 不一致、Python 环境检测错误或旧 Pod 遗留,必须人工复核关键资产。
本文仅覆盖 CVE‑2026‑59822。LiteLLM 在 2026 年还有其他独立安全公告,不能因为升级到 1.84.0 就认为所有风险已消失。应继续使用当前稳定版本、订阅官方安全公告、定期生成 SBOM,并将新的 Advisory 纳入补丁 SLA。
事实依据与来源
本文于 2026 年 9 月 24 日核验。LiteLLM 官方 GitHub Security Advisory 确认:GHSA‑7488‑6r32‑c95q 对应 CVE‑2026‑59822;影响 litellm < 1.84.0;修复版本为 >= 1.84.0;严重度 High,CVSS 4.0 为 8.8;无法升级时应禁用 MCP 路由或在反向代理/API Gateway 阻断 /mcp/ 及相关 MCP 端点。官方 v1.84.0 发布页显示对应修复提交,并提示该版本包含 breaking changes,同时提供 Docker 镜像签名验证说明。
资产分级、灰度流程、四组测试、日志关联、轮换顺序和长期加固属于本文的防御性实施建议。不同部署的根路径、代理规则、OAuth Provider、数据库迁移和工具权限不同,必须在隔离环境实测。本文不包含第三方攻击复现数据,也不提供漏洞利用载荷。
FAQ
CVE‑2026‑59822 影响哪些版本?
官方公告列出的受影响版本是 LiteLLM < 1.84.0,修复版本是 >= 1.84.0。运行更早版本的实例只要存在相关 MCP 路由,就应纳入紧急处置。
漏洞严重度是多少?
官方 GitHub Advisory 标记为 High,CVSS 4.0 为 8.8,并列出网络攻击、低复杂度、无需权限和无需用户交互等指标。
只轮换 LiteLLM Key 能修复漏洞吗?
不能。轮换密钥只能降低已暴露凭据的后续风险,不能修复认证 fallback 的代码逻辑。必须升级到修复版本或更高版本。
不能马上升级时怎么办?
按官方建议禁用 MCP 路由,或在反向代理/API Gateway 阻断 /mcp/ 及相关端点;同时停用高权限 MCP 工具并限制网络访问。
是否应该直接在生产环境验证认证绕过?
不应该。使用隔离测试环境、无害 MCP 工具和无效测试 Token验证拒绝行为即可,不要向生产高权限工具发送攻击性请求。
Docker 用户怎样确认升级成功?
同时检查运行容器的镜像名称、版本和 digest,确认所有副本已替换,并按官方发布页提供的 cosign方式验证镜像签名。仅看到标签改变不够。
Kubernetes 滚动更新后为什么还要检查旧 ReplicaSet?
旧 Pod、回滚副本、CronJob 或灾备环境可能仍运行易受影响镜像。攻击面清单必须覆盖所有实际运行和可被重新拉起的工作负载。
升级到 1.84.0 后可以立即恢复公网 MCP 吗?
不建议。先完成无凭据、无效凭据、合法最小权限和越权四组验证,再检查日志、轮换必要凭据并灰度恢复。长期仍应限制 MCP 公网暴露。
修复后还需要人工审批吗?
需要。认证补丁不能防止 Prompt Injection 或合法身份滥用。邮件、发布、删除、付款、权限和生产数据库等高风险工具仍应要求人工批准。
这篇文章是否提供漏洞利用脚本?
不提供。本文只包含版本检查、升级、隔离和防御性验证方法,避免给出可绕过认证的构造或真实攻击载荷。
参考来源
- LiteLLM 官方安全公告:GHSA‑7488‑6r32‑c95q
- LiteLLM 官方发布:v1.84.0
- NVD:CVE‑2026‑59822
- CVE.org:CVE‑2026‑59822 记录
内容核验日期:2026 年 9 月 24 日
工具选型与提示词资料
适合阅读工具评测、工具推荐、对比测评类文章后继续转化。
0 回复