
Un exploit proof-of-concept per CVE-2022-0185, un buffer overflow basato su heap nella funzione legacy_parse_param del kernel Linux (fs/fs_context.c). Ciò consente a un utente locale non privilegiato di elevare i propri privilegi a root.
Exploit originale di Crusaders of Rust. Writeup completo: https://www.willsroot.io/2022/01/cve-2022-0185.html
Il bug è un underflow intero nel controllo dei limiti all'interno di legacy_parse_param(). Quando size del buffer interno raggiunge 4095 byte, la sottrazione senza segno va in wrap-around e bypassa il controllo, consentendo un overflow dell'heap illimitato nello slab kmalloc-4k.
Kernel interessati: Linux 5.1 – 5.15 Corretto 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
Funziona sui kernel Ubuntu ≥ 5.7. Regola gli offset
single_startemodprobe_pathinexploit_fuse.cper la tua versione del kernel.
./exploit_kctf
Affidabilità ~50%, mirato a Kubernetes 1.22 (kernel 5.10).
Solo per scopi educativi e di ricerca. Non utilizzarlo su sistemi di cui non sei il proprietario o per i quali non hai esplicita autorizzazione al test.
| File | Descrizione |
|---|
exploit_fuse.c | Exploit LPE per Ubuntu utilizzando FUSE + SYSVIPC |
exploit_kctf.c | Container escape kCTF tramite pipe + catena ROP |
fakefuse.c / .h | Filesystem FUSE personalizzato per la race condition |
util.c / .h | Utility condivise |
libfuse/, libfuse3.a | libfuse compilata staticamente (niente dl_open) |
Makefile | Script di compilazione |