Tech

Nova vulnerabilidade HTTP/2 expõe servidores Net a ataques DoS

Vulnerabilidade HTTP/2

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

“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

“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.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button