Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2023-5178 — Exploit per CVE-2023-5178 | Kitploit
Strumenti/GitHubGitHub/rockrid3r/cve-2023-5178
Escalation di PrivilegiMemory ForensicsAnalisi delle VulnerabilitàExploitApprendimento e FormazioneBinary Exploitation
GitHubrockrid3r/cve-2023-5178

CVE-2023-5178

Exploit per CVE-2023-5178

Vedi Repository
752 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2023-5178

L'exploit per CVE-2023-5178: vulnerabilità NVMe-oF-TCP, che è un errore logico nel driver NVMe-oF-TCP durante la gestione di una Initialize Connection Request corrotta. Porta a un doppio free race condition in kmalloc-96, che può essere sfruttato per ottenere LPE (vedi demo sotto).

L'exploit è mirato a Ubuntu 23.10 con kernel 6.5.0-9-generic (l'ultima versione del kernel affetta).

  • Può essere facilmente backportato a kernel v6 precedenti modificando i simboli del kernel e regolando la ropchain.
  • Il backport alla versione del kernel v5 richiede piccole modifiche che discuterò nel writeup. Lo sfruttamento nel kernel v5 è più semplice (ne parlerò nel writeup) ed è più affidabile.

Il bug è stato scoperto da Alon Zahavi. Ha pubblicato una buona descrizione della vulnerabilità in questo articolo su openwall.

DEMO

Guarda il video qui. DEMO PIC 1 HERE DEMO PIC 2 HERE

Requisiti

  • Devi avere i moduli nvmet, nvmet-tcp caricati nel kernel.
  • Assicurati di avere libfuse3-dev (è installato di default su Ubuntu, ma comunque). Se non lo hai, l'idea migliore è scaricare e compilare la release da github. Ho usato la versione 3.14.0, ma dovrebbe funzionare anche con altre versioni.
  • Attualmente l'exploit funziona solo su macchine con 1 core CPU. Dipende solo da come funziona SLUB, ma la race condition rende le cose un po' complicate. In ogni caso, descriverò nel writeup come può essere migliorato per gestire macchine multi-CPU.

Setup

root@kitploit:~
git clone https://github.com/rockrid3r/CVE-2023-5178
cd CVE-2023-5178
make
./build/xpl # esegui l'exploit
  • Nel caso non tu abbia libfuse3-dev, dovresti collegare manualmente la libfuse compilata. Vedi Makefile per come compilare. Sostituisci -lfuse3 con -l:percorso-della-libfuse.so. Non dimenticare di aggiungere il percorso degli header con -I /percorso/degli/header-libfuse/. Esegui l'exploit con:
root@kitploit:~
LD_PRELOAD_PATH=/percorso/della/libfuse.so ./build/exploit

POC

Per chi volesse testare se la vulnerabilità è presente sul proprio sistema, c'è il file src/poc.c che attiva semplicemente il bug. Assume la configurazione standard di ip/porta per NVMe-oF-TCP sul tuo sistema. Dovresti modificarli se i tuoi sono diversi da quelli predefiniti:

root@kitploit:~
#define NVME_SERVER_IP      "0.0.0.0"   // ip dell'host vulnerabile nella LAN (localhost qui).
#define NVME_SERVER_PORT    4420        // porta su cui è configurato NVMe-oF-TCP sull'host vulnerabile

Compilalo ed eseguilo con

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

Dovresti semplicemente eseguirlo (forse più volte) e poi aspettare un po'. Se la vulnerabilità è presente, il sistema si bloccherà.

Writeup

Vedi il writeup completo qui

Scarica lo strumento