HTTP/3 QPACK放大攻击漏洞详解
Qpack amplification attacks against HTTP/3 servers
远程未认证客户端可利用QPACK压缩机制,迫使HTTP/3服务器分配远超发送数据量的内存。研究揭示了quic-go、Cloudflare quiche、lsquic等主流库的漏洞,攻击者仅需一个连接即可耗尽服务器资源。部分实现因未正确计算解码后头部大小或缺乏累积预算限制,导致小请求膨胀为数十万内存对象。虽然部分项目已修复,但Bun和h3等仍存在风险。防御关键在于在解码过程中实时执行累积预算限制,而非仅检查压缩帧大小。
一个小的HEADERS帧可以代表大量的工作,而在测试的多个实现中,这些工作转化为了巨大的内存分配、被保留的头部集合,或是当下游容器达到限制时的恐慌。