
Exploit per la vulnerabilità (CVE-2023-0179) Questa vulnerabilità è stata assegnata come CVE-2023-0179 e interessa tutte le versioni Linux da 5.5 a 6.2-rc3; è stata testata su 6.1.6. I dettagli della vulnerabilità e gli articoli sono disponibili su os-security.
Questo repository contiene l'exploit per la vulnerabilità da me recentemente scoperta nel sottosistema nftables, a cui è stato assegnato il CVE-2023-0179, che affligge tutte le versioni di Linux dalla 5.5 alla 6.2-rc3, sebbene l'exploit sia stato testato sulla 6.1.6.
I dettagli della vulnerabilità e il resoconto sono disponibili su oss-security
Basta invocare il comando make needle per generare l'eseguibile corrispondente.
Per la compilazione sono richiesti libmnl e libnftnl:
sudo apt-get install libmnl-dev libnftnl-dev
L'exploit entrerà in uno spazio dei nomi utente e di rete non privilegiato e aggiungerà un'espressione nft_payload tramite la funzione rule_add_payload che, quando valutata, innescherà il buffer overflow dello stack e sovrascriverà i registri.
Il contenuto viene quindi recuperato con il seguente comando nft:
nft list map netdev mytable myset12
L'output mostrerà diversi indirizzi mescolati relativi a strutture dati del kernel, tra cui troviamo un indirizzo di istruzione del kernel e il puntatore ai registri.
L'exploit crea un nuovo account utente needle:needle con UID 0 abusando della variabile modprobe_path.
Goditi i privilegi di root.
libnftnl di David Bouman e dettagliato post sul blog blog post