Um cliente remoto e não autenticado pode forçar um servidor HTTP/3 a alocar dezenas ou milhares de vezes mais memória do que ele envia. Basta uma única conexão para esgotar a memória de um servidor ou paralisar um servidor com configuração padrão. Sete das dez implementações testadas são vulneráveis, e várias já foram corrigidas.
O QPACK comprime os cabeçalhos HTTP/3 para minimizar o tráfego enviado pela rede. Nas implementações afetadas, os limites de cabeçalhos decodificados estão ausentes, incompletos ou são aplicados tarde demais. Assim, um pequeno frame HEADERS pode se expandir para centenas de milhares de objetos de cabeçalho na memória. Para impedir essa expansão, é necessário impor um orçamento cumulativo à medida que os campos são decodificados e retidos.
A pesquisa começou durante o estudo de pilhas QUIC para o scanner TLS JA4Scan, em que a mesma classe de vulnerabilidade apareceu em várias implementações de HTTP/3. A RFC 9114 define como os servidores devem limitar o tamanho dos cabeçalhos decodificados, mas algumas implementações verificam apenas o tamanho do frame compactado, descompactam tudo antes de verificar, desconsideram a sobrecarga de 32 bytes por campo, assumem o valor ilimitado quando a configuração não está definida, ou nunca aplicam essa configuração.
O ataque funciona em duas direções. Um frame HEADERS de 1.000.000 bytes pode conter cerca de 160.000 cabeçalhos únicos, enquanto uma variante com tabela dinâmica insere uma entrada grande e a referencia milhares de vezes com índices de um byte, produzindo uma razão de 4064:1 em lsquic e Bun.
quic-go, Cloudflare quiche, lsquic e Wireshark têm correções disponíveis. Bun, o crate h3 e aioquic/mitmproxy permaneciam sem correção em 20 de outubro de 2026. As mitigações incluem não expor servidores HTTP/3, desativar o HTTP/3 no mitmproxy e definir um max_field_section_size razoável no h3. IIS, Envoy e ngtcp2/nghttp3 não são afetados.
Fonte: Hacker News · Resumido por HeadlinesBriefing