漏洞  ·  2026-05-28

CVE-2026-48710 'BadHost': Starlette中的未认证身份验证绕过漏洞暴露vLLM、LiteLLM、FastAPI和MCP Server基础设施

漏洞High 影响GlobalCVE-2026-48710
Starlette(FastAPI底层的ASGI框架,以及间接影响vLLM、LiteLLM、Text Generation Inference、MCP服务器和大多数基于Python的AI代理框架)通过将HTTP Host头与请求路径连接来重构请求URL,而不会根据RFC 9112字符约束验证Host值。通过在Host头中注入URI特殊字符(?、/或#),攻击者可以导致request.url.path偏离实际的ASGI路由路径,从而完全绕过基于路径的安全中间件,无需任何凭据。使用'Host: foo?'的单个curl命令足以在正常条件下正确返回403的路由上返回200 OK。官方CVSS评分为6.5(中等),但来自X41 D-Sec和OSTIF的安全研究人员公开认为这低估了现实世界的严重性,考虑到Starlette在AI基础设施堆栈中的渗透率。
远程,未认证。攻击者向任何基于Starlette的端点发送带有格式错误的Host头(例如'Host: legitimate-host.com?')的HTTP请求。ASGI服务器正常路由请求;Starlette的中间件评估被污染的、重新解析的URL路径,无法匹配受保护的路由模式,从而允许请求传递到处理程序。需要原始TCP套接字或允许自定义Host头的工具(标准HTTP客户端会规范化该头)。
Starlette版本0.8.3到1.0.0(补丁前的所有版本)。下游影响:FastAPI(所有使用Starlette中间件进行基于路径身份验证的版本)、vLLM推理服务器、LiteLLM代理网关、Text Generation Inference、OpenAI兼容的ASGI封装、基于FastAPI/Starlette构建的MCP服务器实现,以及使用基于路径访问控制的AI代理工具、仪表板和模型注册表。部署在Cloudflare或AWS ALB后面的部署会获得部分缓解,因为这些代理默认会拒绝格式错误的Host头。
1. 在所有直接和间接依赖项中升级到Starlette 1.0.1或更高版本——升级后重建所有容器和供应商安装,因为就地包更新会保持旧的供应商副本处于活动状态。2. 在安全中间件中将任何使用request.url或request.url.path的地方替换为request.scope['path'],后者返回不受Host头内容影响的原始ASGI传输路径。3. 在任何直接暴露的ASGI服务前部署符合HTTP/1.1的反向代理(Nginx、Apache httpd、Cloudflare)。X41 D-Sec已在badhost.org发布了免费的Semgrep规则、CodeQL查询和远程扫描器来检测易受攻击的安装。
来源
BadHost.org — CVE-2026-48710 Official Disclosure Site (X41 D-Sec / OSTIF)OSTIF — Disclosing the BadHost Vulnerability in StarletteMLQ.AI — Critical BadHost Flaw in Starlette Exposes Millions of AI Agent DeploymentsCVE Record — CVE-2026-48710 (cve.org)BadHost Advisory (badhost.org / Secwest)Ars Technica — Millions of AI agents imperiled by critical vulnerability
在实时动态中查看 浏览更多 AI 安全与治理相关发现 — 每日清晨更新。
打开动态 →