漏洞概述 标题: Request Host Header not Validated in Starlette 严重性评级: 高 确认受影响版本: starlette >= 0.8.3, < 1.0.1 确认修复版本: starlette 1.0.1 供应商: Starlette 供应商URL: https://github.com/Kludex/starlette 向量: Request Host Header not Validated 信用: X41 D-Sec GmbH, JJ 状态: Public CVE: 待分配 GitHub ID: GHSA-86qp-5c8j-p5mr CWE: 436 CVSS评分: 7 CVSS向量: CVSS:3.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N 建议URL: https://www.x41-dsec.de/lab/advisories/x41-2026-002-starlette/ 影响范围 Starlette 根据 HTTP 请求头和请求路径重建请求的 URL,但未对 头值进行任何验证。这允许攻击者将路径注入到主机部分,prepend 实际路径。然而,Starlette 的路由是基于实际请求路径的。这种不一致的 HTTP 请求解释可能导致诸如认证绕过等问题,当认证依赖于重建的 URL 路径时。Starlette 是 FastAPI Python 框架的基础。 修复方案 1. 避免依赖请求路径:实现基于请求端点的功能,如认证。 2. 使用 :代替 。 3. 部署反向代理:如 nginx 或 Apache HTTP Server,用于拒绝无效的 Host 头。 4. 使用 ASGI 服务器:根据 RFC 规范验证主机头。 概念验证 (POC) 代码 时间线 2026-01-27: 在无关的源代码审计中发现问题 2026-02-04: 创建 PoC 并联系供应商,GHSA-86qp-5c8j-p5mr 2026-02-05: 供应商回复 2026-03-01: 供应商提出补丁 2026-05-21: 供应商公开发布补丁 2026-05-22: 发布建议 作者 JJ, Yassine El Baaj, Markus Vervier 日期:2026年5月22日