XRING O erro do XQUIC que pode deitar servidores com apenas centenas de bytes de tráfego

Autor: Publicada 4 min de lectura 138 leituras

As imagens deste artigo foram geradas com inteligência artificial. Como publicamos

Uma verificação matemática errada no XQUIC, a implementação do QUIC e HTTP/3 promovida pela Alibaba, permite que um cliente remoto legítimo provoque o bloqueio do processo servidor com uma rajada muito curta de tráfego conforme o protocolo. O pesquisador Sébastien Féry, da FoxIO, tornou pública a falha em 8 de julho sob a alcunha XRING; de acordo com o seu relatório, não são necessários pacotes malformados ou autenticação: algumas centenas de bytes de tráfego QPACK normais bastam para deitar o processo.

A raiz técnica da falha está na gestão da Tabela dinâmica do QPACK, o mecanismo que evita enviar repetidamente cabeçalhos idênticos em HTTP/3. XQUIC mantém essa tabela em um buffer circular (ring buffer) e ao ampliar a cópia dos dados antigos em um novo. Um ramo desse código calcula mal o tamanho da cauda a mover quando os dados “envolvem” o fim do buffer; o envelopeconteo é usado em um restar sobre um inteiro sem sinal que termina por subdesbordar e produzir um comprimento gigante para uma cópia de memória, com a consequente escrita fora de limites e o colapso do processo em ambientes com verificações de segurança em tempo de execução.

XRING O erro do XQUIC que pode deitar servidores com apenas centenas de bytes de tráfego
Imagem gerada com IA.

Este erro é particularmente preocupante porque o XQUIC é de código aberto e é incorporado a servidores e proxies de terceiros: qualquer projeto que use a biblioteca e exponha HTTP/3 com as configurações QPACK por defeito pode ser afetado. A FoxIO identifica Tengine, o servidor web baseado no Nginx do Alibaba, como um dos produtos de produção que usam o XQUIC e podem receber ataques que afectem portais de alto tráfego.

Por agora não existe um adesivo oficial ou um CVE publicado (estado a 10 de julho segundo a pesquisa). Entretanto, há atenuações operacionais: configurar o SETTINGS_ QPACK_MAX_TABLE_CAPACITY a 0 para desativar a tabela dinâmica de QPACK ou, se não for viável, desactivar o suporte de HTTP/3 completamente nas frentes. Ambas as opções removem a superfície de ataque explorada por XRING, embora a segunda tenha o custo de perder os benefícios de HTTP/3.

Além das modificações de configuração, os equipamentos devem considerar medidas defensivas adicionais: compilar e implementar servidores com hardening (ASLR, PIE, stack canaries e construções do compilador que incluam protecções como _FORTIFY_SOURCE), segmentar e conter processos HTTP/3 e aplicar limites de taxa a novas ligações QUIC/UDP para reduzir a probabilidade de rajadas que provoquem a falha. Em muitos locais industriais, a medida mais fácil e rápida é bloquear ou filtrar o tráfego QUIC/HTTP/3 a nível de perímetro ou CDN até que haja uma correção oficial disponível.

Identificar se é vulnerável começa por verificar a presença de XQUIC em binários e versões: o projeto principal está no GitHub e aí pode ser verificado o histórico e lançamentos ( https://github.com/alibaba/xquic). Para entender o mecanismo de compressão de cabeçalhos que é exposto por este tipo de erros, convém remeter-se à especificação do QPACK do IETF ( https://datatracker.ietf.org/doc/html/rfc9204), que explica como a tabela dinâmica e o encoder stream coordenam as atualizações.

XRING O erro do XQUIC que pode deitar servidores com apenas centenas de bytes de tráfego
Imagem gerada com IA.

O caso XRING é inserido em uma série de vulnerabilidades recentes nas superfícies de cabeçalhos comprimidas: HTTP/2 e implementações anteriores do QUIC/HTTP/3 mostraram falhas que permitem DoS remotos ou corrupções de memória. A combinação de itens válidos do protocolo, um único erro aritmético e código que não protege suficientemente a cópia de memória demonstra como uma linha errada pode ter impacto maciço na disponibilidade.

Para os responsáveis por infra-estruturas, a recomendação prática imediata é rever configurações e implantaçãos: desativar a tabela dinâmica de QPACK ou HTTP/3, aplicar regras na CDN/proxy para bloquear o tráfego QUIC se possível e monitorizar incidentes de crashes súbitos em processos HTTP/3. Além disso, registar a descoberta na gestão dos sistemas de sistemas e subscrever as listas de segurança dos projectos envolvidos para aplicar o fix oficial no que se refere à publicação. Se Tengine for usado ou fork do XQUIC, contacte o fornecedor ou a equipe de manutenção do pacote e exija uma atualização urgente; o código aberto facilita a revisão, mas também dispersa a responsabilidade do adesivo.

Finalmente, e fora do curto prazo, este tipo de falhas sublinha a necessidade de aplicar defesas em profundidade: políticas de compilação seguras, testes de fuzzing orientados para compressão de cabeçalhos, auditorias de código nas áreas críticas de cópia de memória e uma estratégia de implantação que inclua capacidade de desativar protocolos sem quebrar serviços. O provedor de software e os operadores devem ser coordenados para garantir que, quando os adesivos chegam, sejam implementados rapidamente que exige uma vulnerabilidade que permite a recusa de serviço de clientes totalmente legítimos.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.