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

Proteja sua empresa contra hackers através de um Pentest

Tenha acesso aos melhores hackers éticos do mercado através de um serviço personalizado, especializado e adaptado para o seu negócio. Qualidade, confiança e especialidade em segurança ofensiva de quem já protegeu centenas de empresas. Saiba mais...