漏洞概述 漏洞名称: HTTP Request Smuggling in Hiawatha - CVE-2026-51785 漏洞类型: HTTP请求走私 漏洞描述: Hiawatha在处理同时包含 和 头的请求时存在漏洞。Hiawatha优先处理 ,而RFC 9112 §6.3规定应优先处理 。当作为反向代理时,Hiawatha不会剥离原始的 头,导致前后端不同步,攻击者可以利用此漏洞注入恶意请求。 影响范围 受影响版本: Hiawatha <= 12.1 修复版本: Hiawatha 12.2 潜在影响: 可能导致拒绝服务、完整性违规、访问受限资源泄露以及机密信息泄露。 修复方案 修复措施: - 在 中,修复了帧优先级问题,确保在同时存在 和 头时返回400错误。 - 在 中,虽然未直接修改,但通过拒绝模糊请求,间接防止了该漏洞的利用。 POC代码 TE-CL场景(Hiawatha作为后端) CL-TE场景(Hiawatha作为前端) 详细分析 根因: 1. 帧优先级问题 ( ): Hiawatha在处理请求时,优先检查 头,只有在 缺失时才检查 头。这与RFC 9112 §6.3的要求相反。 2. 头转发问题 ( ): Hiawatha在作为反向代理时,不会移除传入的 头,即使存在 头。 利用条件: - 作为Web服务器: 需要反向代理转发包含 和 头的请求。 - 作为反向代理: 需要后端服务器在接收到模糊请求时不报错,并使用 进行帧处理。 利用示例: - TE-CL场景: 攻击者发送包含 和 头的请求,Hiawatha将其视为 帧,导致前后端不同步。 - CL-TE场景: 攻击者发送包含 和 头的请求,Hiawatha将其视为 帧,后端服务器将其视为 帧,导致不同步。 结论 Hiawatha在处理HTTP请求时存在两个关键漏洞,导致HTTP请求走私攻击。修复措施已在版本12.2中实施,建议用户尽快升级以防范潜在风险。