Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-23918-poc — Prova de conceito de exploit para a vulnerabilidade de double-free no Apache mod_http2 (CVE-2026-23918) com fases de reconhecimento, exploração e avaliação de risco de RCE. | Kitploit
Ferramentas/GitHubGitHub/bencodin/cve-2026-23918-poc
ReconhecimentoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoFerramenta de Acesso Remoto
GitHubbencodin/cve-2026-23918-poc

CVE-2026-23918-poc

Prova de conceito de exploit para a vulnerabilidade de double-free no Apache mod_http2 (CVE-2026-23918) com fases de reconhecimento, exploração e avaliação de risco de RCE.

Ver Repositório
9há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-23918 — Apache mod_http2 Double Free

Afetado: Apache HTTP Server 2.4.66 com mod_http2 + Event MPM
Corrigido em: Apache 2.4.67 (mod_h2 v2.0.37)
CVSS 3.1: 8.8 ALTA — Execução Remota de Código não autenticada possível
CWE: CWE-415 (Double Free)


Qual é a vulnerabilidade

mod_http2 no Apache 2.4.66 tem um bug de double free dentro de h2_mplx.c:m_stream_cleanup(). O problema ocorre quando um cliente envia um quadro HEADERS imediatamente seguido por um RST_STREAM no mesmo stream. Se o timing estiver correto, o stream acaba sendo inserido duas vezes no array de purga m->spurge. Quando o mplx é destruído, o pool APR é liberado duas vezes, o que corrompe o heap e causa um SIGABRT ou SIGSEGV.

O Apache corrigiu isso no mod_h2 v2.0.37 introduzindo add_for_purge(), uma simples verificação de desduplicação que impede que o mesmo stream seja adicionado duas vezes.

// Vulnerable (< v2.0.37)
APR_ARRAY_PUSH(m->spurge, h2_stream *) = stream;  // can happen twice

// Fixed (v2.0.37+)
static int add_for_purge(h2_mplx *m, h2_stream *stream) {
    for (int i = 0; i < m->spurge->nelts; ++i)
        if (APR_ARRAY_IDX(m->spurge, i, h2_stream*) == stream)
            return FALSE;
    APR_ARRAY_PUSH(m->spurge, h2_stream *) = stream;
    return TRUE;
}

Como o PoC funciona

Por padrão, o script executa um pipeline de 3 fases no alvo:

FaseO que faz
1 — ReconhecimentoDetecta a versão do Apache, suporte a HTTP/2 via ALPN, tipo de MPM
2 — ExploraçãoEnvia rajadas de HEADERS+RST_STREAM em threads, tenta modo inline e depois staged
3 — Avaliação de RCEMede a consistência da falha e classifica o nível de risco

O escore de RCE é calculado a partir de três sinais detectáveis remotamente. Primeiro, se o Apache 2.4.66 está em execução. Segundo, se o MPM Event ou Worker está em uso (o mod_http2 se recusa a iniciar com Prefork, então se HTTP/2 funciona, é um MPM com threads). Terceiro, o quão determinística é a falha — uma falha na primeira rodada significa que a corrupção do heap é controlada e reproduzível, que é o que você precisa para RCE.


Instalação

pip install hpack requests

Uso

# Full PoC on a single target (default behavior)
python poc.py -t 192.168.1.100

# Increase pressure with more rounds, bigger bursts and more threads
python poc.py -t 192.168.1.100 -n 20 -b 500 -w 5

# Passive check only, nothing is sent to the target
python poc.py -t example.com --check-only

# Scan a whole list of targets
python poc.py -l sites.txt -o results.json

# Passive check on a list
python poc.py -l sites.txt --check-only

# Generate a Markdown report after the run
python poc.py -t target.com --report report.md

Opções

FlagPadrãoDescrição
-t—Alvo único (hostname ou IP)
-l—Arquivo com alvos, um por linha
-p443Porta
-n10Número de rodadas de exploração
-b200Pares HEADERS+RST por rodada
-w3Conexões paralelas por rodada
-d0.1Atraso entre rodadas em segundos
-minlineModo de ataque: inline ou staged
--no-tls—Usar h2c em vez de TLS
--check-only—Apenas reconhecimento passivo, sem exploração
-o—Salvar resultados em um arquivo JSON
--report—Gerar um relatório Markdown
-v—Saída detalhada

Formato do arquivo de alvos

# one target per line, comments are ignored
192.168.1.100
example.com
example.com:8443
https://example.com
http://example.com:8080

Níveis de risco RCE

NívelO que significa
CRITICAL2.4.66 confirmado, HTTP/2 ativo, Event MPM detectado, falha determinística — corrija agora
HIGH2.4.66 confirmado, HTTP/2 ativo, MPM com threads em uso
MEDIUM2.4.66 detectado mas HTTP/2 ou falha ainda não confirmados
LOWVersão não corresponde ou nenhum HTTP/2 detectado
NONEJá corrigido para 2.4.67+ ou não afetado

Como corrigir

A correção adequada é atualizar o Apache para 2.4.67 ou posterior. Se você não puder atualizar imediatamente, desabilitar HTTP/2 remove completamente a superfície de ataque:

# Before
Protocols h2 http/1.1

# After (disables HTTP/2)
Protocols http/1.1

Aviso Legal

Esta ferramenta destina-se apenas a testes de segurança autorizados e pesquisa. Certifique-se de ter permissão explícita por escrito antes de executá-la contra qualquer alvo. O autor não assume responsabilidade por uso indevido.

Baixar ferramenta