Falha crítica no Apache HTTP/2 (CVE-2026-23918) pode causar DoS e possível RCE
6 de Maio de 2026

A Apache Software Foundation (ASF) divulgou atualizações de segurança para corrigir várias falhas no HTTP Server, incluindo uma vulnerabilidade grave que pode levar à execução remota de código (RCE).

A falha, identificada como CVE-2026-23918 e com pontuação CVSS de 8,8, foi descrita como um caso de “double free” com possível RCE no tratamento do protocolo HTTP/2.

O problema afeta o Apache HTTP Server 2.4.66 e foi corrigido na versão 2.4.67.

Bartlomiej Dmitruk, cofundador da Striga.ai, e o pesquisador Stanislaw Strzalkowski, da ISEC.pl, foram creditados pela descoberta e pelo relato da vulnerabilidade.

Dmitruk disse que a gravidade da CVE-2026-23918 é crítica, já que ela pode ser explorada para causar negação de serviço (DoS) e RCE.

Abaixo estão mais detalhes da falha.

A CVE-2026-23918 é um double-free no mod_http2 do Apache httpd 2.4.66, especificamente no caminho de limpeza de fluxo em h2_mplx.c.

O bug é acionado quando um cliente envia um frame HEADERS do HTTP/2 imediatamente seguido de RST_STREAM com um código de erro diferente de zero no mesmo fluxo, antes que o multiplexador tenha registrado o stream.

Em seguida, dois callbacks do nghttp2 são disparados em sequência, on_frame_recv_cb para o RST e on_stream_close_cb para o fechamento, e ambos acabam chamando h2_mplx_c1_client_rst -> m_stream_cleanup.

Isso faz com que o mesmo ponteiro de h2_stream seja inserido duas vezes no array de limpeza spurge.

Quando c1_purge_streams percorre esse array e chama h2_stream_destroy -> apr_pool_destroy para cada entrada, a segunda chamada atinge memória que já havia sido liberada.

Dmitruk acrescentou que o DoS é trivial e funciona em qualquer implantação padrão com mod_http2 e MPM multithread, enquanto o caminho para RCE exige um Apache Portable Runtime (APR) com o alocador mmap, que é o padrão em sistemas derivados do Debian e na imagem oficial do httpd no Docker.

Ele explicou ainda que o primeiro cenário é uma negação de serviço simples: uma conexão TCP, dois frames, sem autenticação, sem cabeçalhos especiais e sem URL específica, e o worker trava.

O Apache o reinicia, mas cada requisição direcionada ao worker que caiu é descartada, e o ataque pode ser mantido enquanto o invasor continuar enviando os frames.

O segundo cenário é a execução remota de código, e os pesquisadores construíram uma prova de conceito funcional em x86_64.

A técnica posiciona uma estrutura falsa h2_stream no endereço virtual liberado por meio da reutilização do mmap, aponta sua função de limpeza de pool para system() e usa a memória do scoreboard do Apache como um contêiner estável para as estruturas falsas e para a string de comando.

O scoreboard fica em um endereço fixo durante toda a vida do servidor, mesmo com ASLR, o que torna o caminho para RCE viável.

As ressalvas habituais ainda se aplicam: a exploração prática exige uma informação vazada para descobrir system() e os offsets do scoreboard, e o heap spray é probabilístico, mas em ambiente de laboratório a execução pode ser obtida em minutos.

Dmitruk também observou que o MPM prefork não é afetado pela falha.

Ainda assim, o pesquisador alertou que a superfície de ataque é ampla, já que o mod_http2 vem em compilações padrão e o HTTP/2 é amplamente habilitado em ambientes de produção.

Diante da gravidade do problema, os usuários são orientados a aplicar as correções mais recentes para obter a melhor proteção.

Publicidade

Anuncie no CaveiraTech e coloque sua marca na frente de milhares de profissionais de cybersecurity

Nossa audiência é formada por analistas, pentesters, decisores e entusiastas que consomem nossas notícias todo dia pelo Site, Newsletter e Instagram. Fale com quem realmente importa para o seu negócio. Anuncie aqui. Saiba mais...