Nova vulnerabilidade HTTP/2 expõe servidores Net a ataques DoS
![https](https://i0.wp.com/blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSJOO-SFm8buSgPRicovagBROYUtBco0wbzJb6ZeyCRnYSvx-Xx8AF2vu7Rf8XZkBkwpPtAqwt7T-bCAOPXBI9AUMsxvY6Dlwh4ChCvsirxnHfArK9p11fpxeBXwXF6GPTIvEcA3bKvViT8nRSaRaM1tfzZWB4ImPHlmP627n2FugeSWyrKOYD7kz7X5hi/s728-rw-e365/https.png?w=780&resize=780,470&ssl=1)
![Vulnerabilidade HTTP/2 Vulnerabilidade HTTP/2](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSJOO-SFm8buSgPRicovagBROYUtBco0wbzJb6ZeyCRnYSvx-Xx8AF2vu7Rf8XZkBkwpPtAqwt7T-bCAOPXBI9AUMsxvY6Dlwh4ChCvsirxnHfArK9p11fpxeBXwXF6GPTIvEcA3bKvViT8nRSaRaM1tfzZWB4ImPHlmP627n2FugeSWyrKOYD7kz7X5hi/s728-rw-e365/https.png)
Uma nova pesquisa descobriu que o quadro CONTINUATION no protocolo HTTP/2 pode ser explorado para conduzir ataques de negação de serviço (DoS).
A técnica recebeu o codinome Inundação de CONTINUAÇÃO HTTP/2 pelo pesquisador de segurança Bartek Nowotarski, que relatou o problema ao Centro de Coordenação CERT (CERT/CC) em 25 de janeiro de 2024.
“Muitas implementações HTTP/2 não limitam ou higienizam adequadamente a quantidade de quadros CONTINUATION enviados em um único fluxo”, disse CERT/CC em um comunicado em 3 de abril de 2024.
“Um invasor que pode enviar pacotes para um servidor alvo pode enviar um fluxo de quadros CONTINUATION que não serão anexados à lista de cabeçalhos na memória, mas ainda assim serão processados e decodificados pelo servidor ou serão anexados à lista de cabeçalhos, causando um falha de falta de memória (OOM).”
Assim como no HTTP/1, o HTTP/2 usa campos de cabeçalho em solicitações e respostas. Esses campos de cabeçalho podem incluir listas de cabeçalho, que por sua vez são serializadas e divididas em blocos de cabeçalho. Os blocos de cabeçalho são então divididos em fragmentos de bloco e transmitidos dentro de quadros HEADER ou chamados de CONTINUATION.
“O quadro CONTINUATION (tipo = 0x9) é usado para continuar uma sequência de fragmentos de bloco de cabeçalho”, diz a documentação do RFC 7540.
![Cíber segurança](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLX0O_pua_BNGD7OG05Td7ASGHjT-c6rLVfmEazcitNrUN4aS12_9AAEWdojbHmrg0EkMQCSyD42w-d6egVdsdVtAEaH-Z0w0f-jU1frNCfaTUp5tY4bg1olzAEY_W1iVATonnvuYqpel_Mxe4TJmkCMSqLOo4ol9NEGBRh_a8C0JhApfKqY8f-wf9m978/s728-e365/wing-d.png)
“Qualquer número de quadros CONTINUATION pode ser enviado, desde que o quadro anterior esteja no mesmo fluxo e seja um quadro HEADERS, PUSH_PROMISE ou CONTINUATION sem o sinalizador END_HEADERS definido.”
O último quadro contendo cabeçalhos terá o sinalizador END_HEADERS definido, que sinaliza ao endpoint remoto que é o fim do bloco de cabeçalho.
De acordo com Nowotarski, CONTINUATION Flood é uma classe de vulnerabilidades em várias implementações do protocolo HTTP/2 que representa uma ameaça mais grave em comparação com o ataque Speedy Reset que veio à tona em outubro de 2023.
“Uma única máquina (e, em certos casos, uma mera conexão TCP ou um punhado de quadros) tem o potencial de interromper a disponibilidade do servidor, com consequências que vão desde falhas no servidor até degradação substancial do desempenho”, disse o pesquisador. “Notavelmente, as solicitações que constituem um ataque não são visíveis nos logs de acesso HTTP.”
A vulnerabilidade, em sua essência, tem a ver com o manuseio incorreto de HEADERS e vários quadros CONTINUATION que abrem caminho para uma condição DoS.
Em outras palavras, um invasor pode iniciar um novo fluxo HTTP/2 contra um servidor de destino usando uma implementação vulnerável e enviar quadros HEADERS e CONTINUATION sem nenhum sinalizador END_HEADERS definido, criando um fluxo interminável de cabeçalhos que o servidor HTTP/2 precisaria. para analisar e armazenar na memória.
Embora o resultado exato varie dependendo da implementação, os impactos variam desde travamento instantâneo após o envio de alguns quadros HTTP/2 e travamento por falta de memória até esgotamento da CPU, afetando assim a disponibilidade do servidor.
“RFC 9113 (…) menciona vários problemas de segurança que podem surgir se os quadros CONTINUATION não forem tratados corretamente”, disse Nowotarski.
![Cíber segurança](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9LS2CMV85AM5f2fKKl2aPAnQ1iZEQKbHh7hRbW3rn3MowE5BXNOrNlHsrMYRMndplTjEmzciLAj6jVsDkRJI2IdSfFXSXuSlMn6gSgmzjKktBgyRTJsC-MayMQq8Z580Hjp8oCv0WoplbNRKlOEzR3RqajPwbLY2JzbQpwEIaW6u2UDkYmcWPO_Mmzq-X/s728-e365/cis-d.png)
“Ao mesmo tempo, não menciona um caso específico em que os frames CONTINUATION são enviados sem o sinalizador END_HEADERS closing, o que pode ter repercussões nos servidores afetados.”
O problema afeta vários projetos como amphp/http (CVE-2024-2653), Apache HTTP Server (CVE-2024-27316), Apache Tomcat (CVE-2024-24549), Apache Site visitors Server (CVE-2024-31309), Proxy Envoy (CVE-2024-27919 e CVE-2024-30255), Golang (CVE-2023-45288), h2 Rust crate, nghttp2 (CVE-2024-28182), Node.js (CVE-2024-27983) e Tempesta FW (CVE-2024-2758).
Recomenda-se que os usuários atualizem o software program afetado para a versão mais recente para mitigar ameaças potenciais. Na ausência de uma correção, é aconselhável considerar a desativação temporária do HTTP/2 no servidor.