HAProxy H3 协议漏洞总结 漏洞概述 漏洞编号:Commit 05a2954 严重程度:BUG/MAJOR 漏洞类型:HTTP/3 协议解析漏洞 问题描述: - 在 QUIC 协议中,STREAM 帧可能在没有数据的情况下发送 FIN 标志位 - HAProxy 的 H3 和 H90 层解析代码被跳过,使用共享函数 处理 HTX EOM 发送 - 此捷径绕过了重要的 HTTP/3 验证检查,导致接收到的 body 大小与声明的 content-length 头不匹配 - 在某些条件下,这可能导致与后端服务器的不同步,可能被利用进行请求走私攻击 影响范围 受影响组件:HAProxy HTTP/3 解析代码 影响版本:需要向后移植到 2.6 版本 攻击场景:请求走私攻击 修复方案 修复方式:在 HTTP/3 解析代码中添加对 的调用 具体实现: - 在 之前检查 content-length 头 - 如果 body 大小不正确,立即重置流并转发错误到流层 - 使用 代码报告错误 代码变更 致谢 感谢 Martino Spagnuolo 对此问题的详细报告 感谢其通过安全邮件列表联系 HAProxy 团队