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-2023-5178 — Exploit para CVE-2023-5178 | Kitploit
Ferramentas/GitHubGitHub/rockrid3r/cve-2023-5178
Escalada de PrivilégiosForensia de MemóriaAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de Binários
GitHubrockrid3r/cve-2023-5178

CVE-2023-5178

Exploit para CVE-2023-5178

Ver Repositório
75há 2 anosAinda 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-2023-5178

O exploit para CVE-2023-5178: vulnerabilidade NVMe-oF-TCP, que é um erro de lógica no driver NVMe-oF-TCP durante o tratamento de Initialize Connection Request corrompido. Isso leva a double-free com condição de corrida em kmalloc-96, que pode ser explorado para obter LPE (veja a demonstração abaixo).

O exploit tem como alvo o Ubuntu 23.10 com o kernel 6.5.0-9-generic (a versão de kernel afetada mais recente).

  • Ele pode ser facilmente backportado para versões anteriores do kernel v6, alterando os símbolos do kernel e ajustando a ropchain.
  • Backportar para a versão v5 do kernel requer algumas modificações menores que discutirei no writeup. A exploração no kernel v5 é mais fácil (discutirei no writeup) e mais confiável.

O bug foi descoberto por Alon Zahavi. Ele publicou uma boa descrição da vulnerabilidade neste artigo do openwall.

DEMO

Veja o vídeo aqui. IMAGEM DE DEMO 1 AQUI IMAGEM DE DEMO 2 AQUI

Requisitos

  • Você deve ter os módulos nvmet, nvmet-tcp carregados no kernel.
  • Certifique-se de ter o libfuse3-dev (ele já vem por padrão no Ubuntu, mas mesmo assim). Se não tiver, a melhor ideia é baixar e compilar o release do github. Eu usei a 3.14.0, mas deve funcionar com outras versões também.
  • Atualmente o exploit funciona apenas em máquinas com 1 núcleo de CPU. Isso se deve apenas a como o SLUB funciona, mas a condição de corrida torna as coisas um pouco complicadas. De qualquer forma, descreverei no writeup como isso pode ser melhorado para lidar com máquinas multi-CPU.

Setup

root@kitploit:~
git clone https://github.com/rockrid3r/CVE-2023-5178
cd CVE-2023-5178
make
./build/xpl # run the exploit
  • Caso você não tenha o libfuse3-dev, você deve manualmente linkar o libfuse compilado. Veja o Makefile para saber como compilar. Substitua -lfuse3 por -l:path-to-libfuse.so. Não se esqueça de adicionar o caminho dos cabeçalhos com -I /path/to/libfuse-headers/. Execute o exploit com:
root@kitploit:~
LD_PRELOAD_PATH=/path/to/libfuse.so ./build/exploit

POC

Para aqueles que querem testar se a vulnerabilidade está presente em seus sistemas, existe o arquivo src/poc.c que simplesmente dispara o bug. Ele assume a configuração padrão de ip/porta para NVMe-oF-TCP no seu sistema. Você deve ajustá-los se os seus não forem os padrões:

root@kitploit:~
#define NVME_SERVER_IP      "0.0.0.0"   // ip of vulnerable host in LAN (localhost here).
#define NVME_SERVER_PORT    4420        // port on which NVMe-oF-TCP is set up on vulnerable host

Compile e execute-o com

root@kitploit:~
make build/poc
./build/poc

Você deve apenas executá-lo (talvez várias vezes) e então esperar um pouco. Se a vulnerabilidade estiver presente, o sistema irá travar.

Writeup

Veja o writeup completo aqui.

Baixar ferramenta