
Ausnutzung der Schwachstelle (CVE-2023-0179) Diese Schwachstelle wurde als CVE-2023-0179 zugewiesen und betrifft alle Linux-Versionen von 5.5 bis 6.2-rc3. Sie wurde auf Version 6.1.6 getestet. Details und ein Artikel zur Schwachstelle sind auf os-security zu finden.
Dieses Repository enthält den Exploit für meine kürzlich entdeckte Sicherheitslücke im nftables-Subsystem, die als CVE-2023-0179 eingestuft wurde und alle Linux-Versionen von 5.5 bis 6.2-rc3 betrifft, obwohl der Exploit auf 6.1.6 getestet wurde.
Die Details der Schwachstelle und die Beschreibung finden Sie auf oss-security
Rufen Sie einfach den Befehl make needle auf, um die entsprechende ausführbare Datei zu erstellen.
libmnl und libnftnl werden benötigt, damit der Build erfolgreich ist:
sudo apt-get install libmnl-dev libnftnl-dev
Der Exploit tritt in einen unprivilegierten Benutzer- und Netzwerk-Namensraum ein und fügt einen nft_payload-Ausdruck über die rule_add_payload-Funktion hinzu, die bei der Auswertung einen Stack-Pufferüberlauf auslöst und die Register überschreibt.
Der Inhalt wird dann mit dem folgenden nft-Befehl abgerufen:
nft list map netdev mytable myset12
Die Ausgabe gibt mehrere gemischte Adressen relativ zu Kernel-Datenstrukturen preis, darunter eine Kernel-Instruktionsadresse 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 Root-Rechte.
David Bouman's libnftnl Implementierung und ausführlicher Blogbeitrag