
Proof-of-Concept-Exploit für CVE-2022-0185, einen Heap-Pufferüberlauf im Linux-Kernel, der lokale Privilegienausweitung und Container-Escape über FUSE und ROP-Ketten ermöglicht.
Ein Proof-of-Concept-Exploit für CVE-2022-0185, einen heap-basierten Pufferüberlauf in der Funktion legacy_parse_param des Linux-Kernels (fs/fs_context.c). Dies ermöglicht einem lokalen, nicht privilegierten Benutzer, Privilegien auf Root auszuweiten.
Original-Exploit von Crusaders of Rust. Vollständige Analyse: https://www.willsroot.io/2022/01/cve-2022-0185.html
Der Fehler ist ein Integer-Unterlauf in der Grenzwertprüfung innerhalb von legacy_parse_param(). Wenn die interne Puffergröße size 4095 Bytes erreicht, führt die vorzeichenlose Subtraktion zu einem Unterlauf, der die Prüfung umgeht, wodurch ein unbegrenzter Heap-Überlauf im kmalloc-4k-Slab ermöglicht wird.
Betroffene Kernel: Linux 5.1 – 5.15
Behoben in: Linux 5.16+
make
# Enter a user namespace to get CAP_SYS_ADMIN
unshare -Urm
# Run the exploit — makes /bin/bash SUID
./exploit_fuse
# Get a root shell
bash -p
Funktioniert auf Ubuntu-Kerneln ≥ 5.7. Passe die Offsets
single_startundmodprobe_pathinexploit_fuse.cfür deine Kernel-Version an.
./exploit_kctf
~50 % Zuverlässigkeit, ausgelegt für Kubernetes 1.22 (Kernel 5.10).
Nur zu Bildungs- und Forschungszwecken. Verwende es nicht gegen Systeme, die dir nicht gehören oder für die du keine ausdrückliche Erlaubnis zum Testen hast.
| Datei | Beschreibung |
|---|
exploit_fuse.c | Ubuntu-LPE-Exploit mit FUSE + SYSVIPC |
exploit_kctf.c | kCTF-Container-Escape mit Pipes + ROP-Kette |
fakefuse.c / .h | Eigenes FUSE-Dateisystem für die Race-Condition |
util.c / .h | Gemeinsame Hilfsfunktionen |
libfuse/, libfuse3.a | Statisch kompilierte libfuse (ohne dl_open) |
Makefile | Build-Skript |