Novo Ataque DoS no HTTP/2 Pode Derrubar Servidores Web com Apenas Uma Conexão
5 de Abril de 2024

Foram descobertas novas vulnerabilidades no protocolo HTTP/2, denominadas "CONTINUATION Flood", que podem levar a ataques do tipo negação de serviço (DoS), derrubando servidores web com uma única conexão TCP em algumas implementações.

O HTTP/2 é uma atualização do protocolo HTTP padronizada em 2015, projetada para melhorar o desempenho da web introduzindo uma estrutura binária para transmissão de dados eficiente, multiplexação para permitir múltiplas solicitações e respostas em uma única conexão e compressão de cabeçalho para reduzir o overhead.

As novas vulnerabilidades de CONTINUATION Flood foram descobertas pelo pesquisador Barket Nowotarski, que afirma que estão relacionadas ao uso de quadros de CONTINUAÇÃO no HTTP/2, os quais não são devidamente limitados ou verificados em muitas implementações do protocolo.

As mensagens do HTTP/2 incluem seções de cabeçalho e rodapé serializadas em blocos.

Esses blocos podem ser fragmentados em vários quadros para transmissão, e os quadros de CONTINUAÇÃO são usados para costurar o fluxo.

A omissão de verificações adequadas de quadros em muitas implementações permite que atores de ameaças potencialmente enviem uma longa sequência de quadros simplesmente não definindo a flag 'END_HEADERS', levando a indisponibilidades do servidor devido a falhas por falta de memória ou exaustão de recursos da CPU à medida que esses quadros são processados.

O pesquisador alertou que condições de falta de memória poderiam levar a falhas do servidor usando uma única conexão TCP HTTP/2 em algumas implementações.

"Falta de memória provavelmente são os casos mais monótonos, porém graves.

Não há nada de especial sobre isso: sem lógica estranha, sem condição de corrida interessante e assim por diante", explica Nowotarski.

"As implementações que permitem OOM simplesmente não limitaram o tamanho da lista de cabeçalhos construída usando quadros de CONTINUAÇÃO".

"Implementações sem limites de tempo para cabeçalhos requeriam apenas uma única conexão HTTP/2 para derrubar o servidor."

Um alerta do Centro de Coordenação CERT (CERT-CC) publicado hoje lista vários IDs CVE correspondentes a diferentes implementações do HTTP/2 vulneráveis a esses ataques.

Essas implementações permitem diferentes níveis de ataques de negação de serviço, incluindo vazamentos de memória, consumo de memória e exaustão da CPU, conforme descrito a seguir:

CVE-2024-27983 : Afeta o servidor HTTP/2 do Node.js.

O envio de alguns quadros do HTTP/2 pode causar um vazamento de memória devido a uma condição de corrida, levando a um potencial DoS.

CVE-2024-27919 : Afeta o codec oghttp do Envoy.

Consumo ilimitado de memória devido a não redefinir um pedido quando os limites do mapa de cabeçalhos são excedidos.

CVE-2024-2758 : Relaciona-se com o Tempesta FW.

Seus limites de taxa não estão impedindo efetivamente ataques com quadros de CONTINUAÇÃO vazios, potencialmente permitindo DoS.

CVE-2024-2653 : Afeta o amphp/http.

Ele coleta quadros de CONTINUAÇÃO em um buffer ilimitado, arriscando uma falha de OOM se o limite de tamanho do cabeçalho for excedido.

CVE-2023-45288 : Afeta os pacotes net/http e net/http2 do Go.

Permite que um atacante envie um conjunto arbitrariamente grande de cabeçalhos, causando consumo excessivo de CPU.

CVE-2024-28182 : Envolve uma implementação usando a biblioteca nghttp2, que continua a receber quadros de CONTINUAÇÃO, levando a um DoS sem o devido callback de reset do fluxo.
CVE-2024-27316 : Afeta o Apache Httpd.

Fluxo contínuo de quadros de CONTINUAÇÃO sem a flag END_HEADERS definida pode ser enviado, finalizando inadequadamente as solicitações.

CVE-2024-31309 : Afeta o Apache Traffic Server.

Ataque DoS de CONTINUAÇÃO no HTTP/2 pode causar consumo excessivo de recursos no servidor.
CVE-2024-30255 : Afeta versões do Envoy 1.29.2 ou anteriores.

Vulnerável à exaustão da CPU devido a uma enxurrada de quadros de CONTINUAÇÃO, consumindo recursos significativos do servidor.

Até agora, de acordo com o CERT-CC, os fornecedores e bibliotecas HTTP/2 que confirmaram ser impactados por pelo menos um dos CVEs acima são Red Hat, SUSE Linux, Arista Networks, o Projeto Servidor HTTP Apache, nghttp2, Node.js, AMPHP, e a Linguagem de Programação Go.

Nowotarski diz que o problema é mais grave do que o ataque 'HTTP/2 Rapid Reset' revelado em outubro passado por grandes provedores de serviços de nuvem, que tem estado sob exploração ativa desde agosto de 2023.

"Dado que a Cloudflare Radar estima que os dados de tráfego HTTP superam 70% de toda a transferência na internet e a significância dos projetos afetados, acredito que podemos assumir que uma grande parte da internet foi afetada por uma vulnerabilidade fácil de explorar: em muitos casos, apenas uma única conexão TCP era suficiente para derrubar o servidor," alertou Nowotarski.

Além disso, o pesquisador alerta que o problema seria complexo para os administradores de servidores depurarem e mitigarem sem o conhecimento adequado do HTTP/2.

Isso ocorre porque as solicitações maliciosas não seriam visíveis nos logs de acesso se a análise avançada de quadros não estivesse habilitada no servidor, o que na maioria dos casos não está.

À medida que os atores de ameaças monitoram comumente técnicas recém-descobertas de DDoS para usar em seus serviços de estressamento e ataques, é crítico atualizar servidores e bibliotecas impactadas antes que as vulnerabilidades sejam exploradas ativamente.

Publicidade

Hardware Hacking

Aprenda a criar dispositivos incríveis com o especialista Júlio Della Flora. Tenha acesso a aulas prática que te ensinarão o que há de mais moderno em gadgets de hacking e pentest. Se prepare para o mercado de pentest físico e de sistemas embarcados através da certificação SYH2. Saiba mais...