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
A primeira certificação prática brasileira de wireless hacking veio para mudar o ensino na técnica no país, apresentando labs práticos e uma certificação hands-on.
Todas as técnicas de pentest wi-fi reunidos em um curso didático e definitivo.
Saiba mais...