Descobertas recentemente, as novas vulnerabilidades HTTP/2 podem levar a ataques DoS e pode travar servidores web com uma única conexão.
HTTP/2 é uma atualização do protocolo HTTP padronizado em 2015, projetado para melhorar o desempenho da web, introduzindo enquadramento binário para transmissão de dados eficiente, multiplexação para permitir múltiplas solicitações e respostas em uma única conexão e compactação de cabeçalho para reduzir sobrecarga.
Infelizmente, vulnerabilidades recém-descobertas do protocolo HTTP/2 chamadas “CONTINUATION Flood” podem levar a ataques de negação de serviço (DoS), travando servidores web com uma única conexão TCP em algumas implementações.
Novas vulnerabilidades HTTP/2 podem levar a ataques DoS
As novas vulnerabilidades do CONTINUATION Flood foram descobertas pelo pesquisador Barket Nowotarski, que afirma que se trata do uso de frames HTTP/2 CONTINUATION, que não são devidamente limitados ou verificados em muitas implementações do protocolo.
As mensagens HTTP/2 incluem seções de cabeçalho e trailer serializadas em blocos. Esses blocos podem ser fragmentados em vários quadros para transmissão, e os quadros CONTINUATION são usados para unir o fluxo.
A omissão de verificações de quadros adequadas em muitas implementações permite que os agentes de ameaças enviem potencialmente uma sequência extremamente longa de quadros simplesmente não configurando o sinalizador ‘END_HEADERS’, levando a interrupções do servidor devido a falhas de falta de memória ou esgotamento de recursos da CPU, pois esses quadros são processados.
O pesquisador alertou que condições de falta de memória podem levar a falhas no servidor usando uma única conexão HTTP/2 TCP em algumas implementações.
“Out of Memory são provavelmente os casos mais enfadonhos, porém graves. Não há nada de especial nisso: nenhuma lógica estranha, nenhuma 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 CONTINUATION.”
“Implementações sem tempo limite de cabeçalho exigiam apenas uma única conexão HTTP/2 para travar o servidor.”
Um alerta do Centro de Coordenação CERT (CERT-CC) publicado hoje lista vários IDs CVE correspondentes a diferentes implementações HTTP/2 vulneráveis a esses ataques.
Essas implementações permitem vários níveis de ataques de negação de serviço, incluindo vazamentos de memória, consumo de memória e esgotamento da CPU, conforme descrito abaixo:
- CVE-2024-27983 : Afeta o servidor Node.js HTTP/2. O envio de alguns quadros HTTP/2 pode causar 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 à não redefinição de uma solicitação quando os limites do mapa de cabeçalho são excedidos.
- CVE-2024-2758 : Relacionado ao Tempesta FW. Seus limites de taxa não impedem efetivamente ataques de quadros CONTINUATION vazios, potencialmente permitindo DoS.
- CVE-2024-2653 : Afeta amphp/http. Ele coleta quadros CONTINUATION 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 invasor 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 CONTINUATION, levando a um DoS sem retorno de chamada de redefinição de fluxo adequado.
- CVE-2024-27316 : Afeta o Apache Httpd. O fluxo contínuo de quadros CONTINUATION sem o sinalizador END_HEADERS definido pode ser enviado, encerrando solicitações incorretamente.
- CVE-2024-31309 : Afeta o servidor de tráfego Apache. CONTINUAÇÃO HTTP/2 O ataque DoS pode causar consumo excessivo de recursos no servidor.
- CVE-2024-30255 : Afeta as versões 1.29.2 ou anteriores do Envoy. Vulnerável ao esgotamento da CPU devido a uma inundação de quadros CONTINUATION, consumindo recursos significativos do servidor.
Até agora, de acordo com o CERT-CC, os fornecedores e bibliotecas HTTP/2 que confirmaram que foram impactados por pelo menos um dos CVEs acima são Red Hat, SUSE Linux, Arista Networks, Apache HTTP Server Project, 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 pelos principais provedores de serviços em nuvem, que está sob exploração ativa desde agosto de 2023.
“Dado que o Cloudflare Radar estima dados de tráfego HTTP acima de 70% de todas as transferências da Internet e a importância dos projetos afetados, acredito que podemos assumir que grande parte da Internet foi afetada por uma vulnerabilidade fácil de explorar: em muitos casos, apenas um único TCP A conexão foi suficiente para travar 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 de 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 frames não estivesse habilitada no servidor, o que na maioria dos casos não está.
Como os agentes de ameaças geralmente monitoram técnicas DDoS recém-descobertas para usar em seus serviços e ataques estressantes, é fundamental atualizar os servidores e bibliotecas afetados antes que as vulnerabilidades sejam ativamente exploradas.