2026年6月1日,安全研究人员披露了编号为CVE-2026-48710的高危认证绕过漏洞"BadHost"。该漏洞存在于广泛使用的Python Web框架Starlette中——每周下载量高达3.25亿次,是FastAPI等众多知名Python框架的基础组件。
攻击者只需在HTTP Host头中加入一个特殊字符(如 /、? 或 #),即可绕过基于路径的访问控制,将403访问拒绝变为200请求成功:
curl -i -H 'Host: foo' http://target/admin # 403,正常拦截
curl -i -H 'Host: foo?' http://target/admin # 200,成功绕过
漏洞由Secwest和X41 D-Sec两家安全研究团队独立发现。尽管CVSS评分为6.5(中等风险),但研究人员强调这"严重低估了下游影响"。在Hacker News上,安全社区反响强烈,有评论直言:"这个漏洞很严重,评估为中等低估了它对数以千计下游项目和数十亿安装的影响。"
BadHost是在对vLLM(一款流行的LLM推理引擎)进行代码审计时被发现的。漏洞的根因在于Starlette在重构 request.url 时,将HTTP Host头与请求路径直接拼接后重新解析。由于Host头值未按RFC 9112/RFC 3986规范进行严格格式校验,攻击者注入的 /、? 或 # 字符会在重解析过程中改变路径边界,导致 request.url.path 的结果与ASGI服务器实际收到的路径不一致,从而使依赖路径进行访问控制的认证机制完全失效。
尤为关键的是,这一漏洞并非某个文件或仓库中的孤立bug,而是跨越三个组件的信任裂隙:ASGI服务器传递原始Host头 → Starlette信任该值直接用于URL构建 → 中间件开发者假设 request.url.path 对认证决策是安全的。每个组件单独运行都表现正常,只有在组件间交互时漏洞才显现。这种"跨层合成漏洞"在当前的微服务和AI基础设施架构中正变得愈发普遍,也是传统安全扫描工具难以发现的根本原因。
受影响最严重的当属部署在内部网络、实验子网和LLM研究环境中的AI服务——这些环境往往缺乏生产系统中常见的反向代理和WAF保护,直接暴露于BadHost攻击之下。研究人员特别强调,MCP(Model Context Protocol)服务器面临的风险尤为突出。MCP正在成为AI Agent与外部工具交互的标准协议,但协议规范要求未认证的OAuth发现端点,为漏洞利用提供了现成的攻击入口。
X41的分析发现,多个流行开源项目的中间件将安全决策直接基于 request.url,研究人员已成功演示了从单字符原语到认证绕过、SSRF(服务器端请求伪造)乃至远程代码执行的完整利用链。一个值得注意的细节是:此前号称能自动发现超万个漏洞的AI安全工具Claude Mythos未能发现BadHost。研究人员指出,这种跨组件协同的合成漏洞超出了现有AI安全工具的检测能力。
Starlette官方已在1.0.1版本中修复该漏洞。所有使用Starlette及基于其构建的框架(包括FastAPI)的团队应立即升级:
pip install --upgrade starlette>=1.0.1
对于无法立即升级的环境,可采取以下缓解措施:
/、?、# 等特殊字符的请求request.url.path 改为使用ASGI服务器原始路径研究人员还提供了免费在线检测工具:badhost.org,可用于扫描自身服务是否存在该漏洞。
随着青海省数字政府建设和企业数字化转型深入推进,Python Web框架在政务数据共享平台、AI辅助决策系统中的应用日益广泛。对于青海政企用户,建议:各级政务云平台如使用FastAPI/Starlette构建API接口应立即排查修复;部署在内网的AI推理服务、智能客服系统应确认是否直接暴露在公网;所有AI服务应置于统一API网关之后,杜绝裸IP直接对外服务;将Host头校验纳入Web应用安全基线配置。考虑到青海本地IT运维团队规模有限,建议将Python依赖漏洞扫描纳入CI/CD自动化流程,利用Trivy、Safety等工具定期检查依赖中的已知漏洞。
© 2026 西宁惠康电子有限公司 | 青海·西宁