
Exploit de preuve de concept pour CVE-2022-0185, un débordement de tampon du tas du noyau Linux permettant l'escalade de privilèges locale et l'évasion de conteneur via FUSE et des chaînes ROP.
Une preuve de concept pour CVE-2022-0185, un débordement de tas (heap-based buffer overflow) dans la fonction legacy_parse_param du noyau Linux (fs/fs_context.c). Cela permet à un utilisateur local non privilégié d'élever ses privilèges à root.
Exploit original par Crusaders of Rust. Article complet : https://www.willsroot.io/2022/01/cve-2022-0185.html
Le bug est un dépassement d'entier (integer underflow) dans la vérification des limites à l'intérieur de legacy_parse_param(). Lorsque la taille du tampon interne atteint 4095 octets, la soustraction non signée provoque un débordement et contourne la vérification, permettant un débordement de tas illimité dans le slab kmalloc-4k.
Noyaux affectés : Linux 5.1 – 5.15 Corrigé dans : Linux 5.16+
make
# Entrer dans un espace de noms utilisateur pour obtenir CAP_SYS_ADMIN
unshare -Urm
# Lancer l'exploit — rend /bin/bash SUID
./exploit_fuse
# Obtenir un shell root
bash -p
Fonctionne sur les noyaux Ubuntu ≥ 5.7. Ajustez les décalages
single_startetmodprobe_pathdansexploit_fuse.cpour votre version de noyau.
./exploit_kctf
Fiabilité d'environ 50 %, ciblant Kubernetes 1.22 (noyau 5.10).
À des fins éducatives et de recherche uniquement. Ne pas utiliser contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.
| Fichier | Description |
|---|
exploit_fuse.c | Exploit d'élévation de privilèges Ubuntu utilisant FUSE + SYSVIPC |
exploit_kctf.c | Échappement de conteneur kCTF utilisant pipes + chaîne ROP |
fakefuse.c / .h | Système de fichiers FUSE personnalisé pour la condition de course |
util.c / .h | Utilitaires partagés |
libfuse/, libfuse3.a | libfuse compilée statiquement (pas de dl_open) |
Makefile | Script de construction |