Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/pwncone/cve-2023-0386-overlayfs
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de Binaires
GitHubpwncone/cve-2023-0386-overlayfs

CVE-2023-0386-OverlayFS

Copier de faux fichiers en mémoire sur le disque en utilisant overlayFS

Voir le dépôt
3il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2023-0386 - OverlayFS / FUSE

Source originale du CVE écrite par xkaneiki : https://github.com/xkaneiki/CVE-2023-0386/tree/main

Réécrite pour que l'exploit puisse être exécuté dans un seul shell (l'exploit original nécessite deux shells).

root@kitploit:~
# Compile
make all
# Create mount point for fuse filesystem
mkdir -p /tmp/fusepwn/lower
# Start fuse (which serves a SUID binary)
./fuse /tmp/fusepwn/lower
# Run exploit (which copies fuse's fake SUID binary onto disk with real SUID privs via overlayfs)
./exp
# Run shell
/tmp/fusepwn/upper/bin

Nettoyage

root@kitploit:~
# unmount fuse filesystem
fusermount -u /tmp/fusepwn/lower
# remove all 
rm -rf /tmp/fusepwn
# unmount overlayfs (root only. not required)
umount /tmp/fusepwn/merge

Remarques

  • Utilisez findmnt pour voir les systèmes de fichiers montés
  • Le montage overlayfs n'est visible que par root (je ne sais pas pourquoi)

Comment ça fonctionne

fuse.c crée un système de fichiers fuse monté sur /tmp/fusepwn/lower et sert un binaire SUID factice appartenant à root. Il s'agit d'un système de fichiers en mémoire, donc nous pouvons mentir sur les permissions définies.

exp.c crée ensuite un montage overlayfs dans /tmp/fusepwn et ouvre le binaire SUID factice (/tmp/fusepwn/lower/bin). Lors de l'ouverture, cela déclenche overlayfs pour effectuer une copie ascendante (copy-up) qui écrit le binaire SUID factice sur le disque avec de vrais privilèges SUID et appartenant à root.

La vulnérabilité réside dans overlayfs car il fait aveuglément confiance aux permissions des fichiers qui lui sont fournies par le système de fichiers inférieur. Si le système de fichiers inférieur est le noyau, cela va bien (car il ne peut être manipulé sans permissions root). Si le système de fichiers inférieur peut être manipulé par l'utilisateur, ce n'est pas bon car nous pouvons mentir sur les fichiers qui s'y trouvent (comme en utilisant FUSE).

Correctif

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f11ada10d0ad3fd53e2bd67806351de63a4f9c3

Le correctif vérifie si l'UID/GID du fichier est valide dans le namespace de l'utilisateur. Si ce n'est pas le cas, il échoue la copie ascendante.

i.e.

  • nous sommes bob
  • nous créons un nouveau namespace en tant que root en mappant 1000 (l'UID de bob) vers 0 (root) dans proc/self/uid_map
  • nous essayons de déclencher une copie ascendante sur un fichier appartenant à root
  • overlayfs vérifie le mappage de bob et voit que le namespace de l'utilisateur est en réalité 1000 (bob) et non 0 (root) comme le fichier, et échoue la copie ascendante

Ressources utiles

  • Blog utile : https://engineering.facile.it/blog/eng/write-filesystem-fuse/
  • Exemple d'implémentation FUSE : https://man.openbsd.org/fuse_main.3

Diagram

diagram

Télécharger l’outil