发生了什么
2026年5月,FastAPI底层的Python框架Starlette被披露存在严重的身份验证绕过漏洞CVE-2026-48710,绰号BadHost。修复版本为Starlette 1.0.1。该漏洞由X41 D-Sec在OSTIF资助的审计中发现,Ars Technica进行了报道。
为何严重:Starlette每周下载量约3.25亿次,支撑着大量Python AI基础设施:vLLM、LiteLLM、连接AI智能体与工具和数据库的MCP服务器、Google ADK-Python、Ray Serve、BentoML以及智能体控制台。
原理
Starlette把Host头和请求路径拼接成request.url,却没有校验Host。攻击者发送类似Host: example.com/health?x=的值:
- 路由器把请求交给真实路径(如
/admin); - 但认证中间件看到的是被"污染"的路径(公开的
/health),于是放行。
结果是:中间件中基于路径的安全规则,只需在头部加一个字符就能绕过。
MCP服务器尤其容易成为目标,因为MCP规范要求公开OAuth发现端点,便于被找到。X41的扫描显示,存在漏洞的系统暴露了临床试验数据、身份验证数据、整个邮箱、人力资源数据以及工业设备的SSH访问。
据报道,就连Claude Mythos在Project Glasswing中也没有发现这个漏洞,因为它源于三个各自正常运行的层之间的组合。
应对措施
- 将Starlette升级到1.0.1或更高版本(以及包含它的FastAPI)。
- 若暂时无法升级:在所有做安全判断的中间件和依赖中,用
request.scope["path"]替换request.url.path。 - 在前端部署校验Host的反向代理(nginx、Caddy、Traefik、HAProxy)。
- 审查容器镜像和虚拟环境,其中可能锁定了旧版本。
- badhost.org提供免费扫描工具。
教训
AI智能体基础设施发展过快,继承了无人审视的安全假设。如果你在用FastAPI运行MCP服务器或LLM代理,请将此列为优先事项。
来源
- The Agent Report (28/05/2026): https://the-agent-report.com/2026/05/badhost-starlette-cve-critical-ai-agent-vulnerability/
贵公司是否在运行AI智能体或MCP服务器?KGA IT可免费进行安全检查:kga-it.com