
Proof-of-Concept-Exploit für CVE-2023-0179, ein Stack-Pufferüberlauf im nftables-Subsystem des Linux-Kernels, der eine lokale Privilegienausweitung aus unprivilegierten Benutzernamensräumen ermöglicht.
Dieses Repository enthält den Exploit für meine kürzlich entdeckte Schwachstelle im nftables-Subsystem, der CVE-2023-0179 zugewiesen wurde. Sie betrifft alle Linux-Versionen von 5.5 bis 6.2-rc3, obwohl der Exploit auf 6.1.6 getestet wurde.
Details und Beschreibung der Schwachstelle sind auf oss-security zu finden.
Führen Sie einfach den Befehl make needle aus, um die entsprechende ausführbare Datei zu erstellen.
libmnl und libnftnl werden für den Build benötigt:
sudo apt-get install libmnl-dev libnftnl-dev
Der Exploit wird in einen unprivilegierten Benutzer- und Netzwerk-Namespace wechseln und einen nft_payload-Ausdruck über die Funktion rule_add_payload hinzufügen. Bei der Auswertung wird dieser den Stack-Pufferüberlauf auslösen und die Register überschreiben.
Der Inhalt wird dann mit dem folgenden nft-Befehl abgerufen:
nft list map netdev mytable myset12
Die Ausgabe wird mehrere gemischte Adressen von Kernel-Datenstrukturen preisgeben, darunter eine Kernel-Befehlsadresse und den regs-Zeiger.
Der Exploit erstellt ein neues Benutzerkonto needle:needle mit UID 0, indem er die Variable modprobe_path missbraucht.
Genießen Sie die Root-Rechte.
libnftnl Implementierung und detaillierter Blogbeitrag