
Exploitation de la vulnérabilité (CVE-2023-0179) Cette vulnérabilité, identifiée sous le nom CVE-2023-0179, affecte toutes les versions de Linux de 5.5 à 6.2-rc3, et a été testée sur la version 6.1.6. Les détails et articles concernant cette vulnérabilité sont disponibles sur os-security.
Ce dépôt contient l'exploit de la vulnérabilité que j'ai récemment découverte dans le sous-système nftables, qui a été assignée sous CVE-2023-0179, affectant toutes les versions de Linux de 5.5 à 6.2-rc3, bien que l'exploit ait été testé sur la version 6.1.6.
Les détails et l'analyse de la vulnérabilité sont disponibles sur oss-security
Il suffit d'invoquer la commande make needle pour générer l'exécutable correspondant.
libmnl et libnftnl sont requis pour la compilation :
sudo apt-get install libmnl-dev libnftnl-dev
L'exploit entre dans un espace de noms utilisateur et réseau non privilégié et ajoute une expression nft_payload via la fonction rule_add_payload qui, lors de son évaluation, déclenche un dépassement de tampon sur la pile et écrase les registres.
Le contenu est ensuite récupéré avec la commande nft suivante :
nft list map netdev mytable myset12
La sortie révèle plusieurs adresses mélangées relatives aux structures de données du noyau, parmi lesquelles on trouve une adresse d'instruction du noyau et le pointeur regs.
L'exploit crée un nouveau compte utilisateur needle:needle avec l'UID 0 en abusant de la variable modprobe_path.
Profitez des privilèges root.
libnftnl de David Bouman lien et article de blog détaillé.