Falha crítica no Apache HTTP/2 (CVE-2026-23918) permite DoS e pode levar a RCE

A Apache Software Foundation liberou atualizações para o HTTP Server que corrigem várias vulnerabilidades, entre elas a CVE-2026-23918, um caso de double free no tratamento de HTTP/2 que permite negação de serviço e, em situações específicas, execução remota de código; a falha afetava o Apache 2.4.66 e foi corrigida na versão 2.4.67, sendo reportada por Bartlomiej Dmitruk e Stanislaw Strzalkowski.

A Apache Software Foundation liberou atualizações para o HTTP Server que corrigem várias vulnerabilidades, incluindo a CVE-2026-23918.

Essa falha é um caso de double free no tratamento do HTTP/2 que pode causar negação de serviço e, em condições específicas, execução remota de código.

O problema afetava a versão 2.4.66 do servidor e foi corrigido na 2.4.67.

A descoberta foi reportada por Bartlomiej Dmitruk e Stanislaw Strzalkowski.





O vetor de DoS é simples: um cliente envia um frame HTTP/2 HEADERS e logo em seguida um RST_STREAM com código de erro diferente de zero no mesmo stream.

Na sequência, o multiplexador registra o stream apenas depois, o que provoca um double free e pode derrubar o processo worker.

Dois callbacks disparam em sequência — on_frame_recv_cb para o RST e on_stream_close_cb para o fechamento — e ambos acabam chamando h2_mplex_c1_client_rst, que leva a m_stream_cleanup.

O mesmo ponteiro h2_stream acaba sendo empurrado duas vezes para o array de limpeza (spurge) e, quando c1_purge_streams itera esse array e executa h2_stream_destroy -> apr_pool_destroy, a segunda chamada tenta liberar memória já liberada.

A negação de serviço é trivial em implantações padrão com mod_http2 e um MPM multi-threaded; um único TCP com dois frames e sem autenticação já pode causar a queda do worker.

Para chegar à execução remota de código é necessário que o APR use o alocador mmap, que é o padrão em sistemas derivados do Debian e na imagem oficial do httpd no Docker.

Um proof of concept funcional mostrou que é possível posicionar uma estrutura h2_stream falsa no endereço virtual liberado via reutilização de mmap, apontar sua função de limpeza de pool para system() e usar a memória do scoreboard do Apache como um local estável para as estruturas e a string de comando.

O scoreboard permanece em um endereço fixo durante a vida do servidor, mesmo com ASLR, e isso é o que torna o caminho para RCE prático em certos cenários.

Os pesquisadores observam que a exploração prática exige vazamento de informações para obter endereços como o de system() e os offsets do scoreboard, e que a pulverização do heap é probabilística, embora em laboratório a execução tenha sido alcançada em minutos.

O MPM prefork não é afetado por essa falha.

Como o mod_http2 costuma vir em builds padrão e HTTP/2 está amplamente habilitado em produção, a superfície de ataque é significativa.

A Apache Software Foundation publicou atualizações na versão 2.4.67 para mitigar essa e outras falhas relacionadas.

Artigo anterior

Nubank nomeia Carl Rivera, ex-Shopify, como novo Chief Product Officer



Artigos relacionados