
Exploit para CVE-2023-0179, un desbordamiento de búfer en la pila en el subsistema nftables de Linux, que permite escalada local de privilegios no privilegiada a root mediante la sobrescritura de modprobe_path.
Este repositorio contiene el exploit para mi vulnerabilidad recientemente descubierta en el subsistema nftables a la que se asignó CVE-2023-0179, afectando a todas las versiones de Linux desde la 5.5 hasta la 6.2-rc3, aunque el exploit fue probado en la 6.1.6.
Los detalles de la vulnerabilidad y el informe se pueden encontrar en oss-security
Simplemente invoque el comando make needle para generar el ejecutable correspondiente.
libmnl y libnftnl son necesarios para que la compilación tenga éxito:
sudo apt-get install libmnl-dev libnftnl-dev
El exploit entrará en un espacio de nombres de usuario y red no privilegiado y agregará una expresión nft_payload a través de la función rule_add_payload que, al ser evaluada, desencadenará el desbordamiento del búfer de pila y sobrescribirá los registros.
El contenido se recupera entonces con el siguiente comando nft:
nft list map netdev mytable myset12
La salida filtrará varias direcciones mezcladas relativas a las estructuras de datos del kernel, entre las que encontramos una dirección de instrucción del kernel y el puntero de registros.
El exploit crea una nueva cuenta de usuario needle:needle con UID 0 abusando de la variable modprobe_path.
Disfrute de los privilegios de root.
libnftnl de David Bouman y su detallada entrada de blog