
PoC de escalada de privilegios local para el kernel de Linux CVE-2022-1015
Este repositorio contiene un PoC para la escalada local de privilegios de CVE-2022-1015, un bug en el componente nf_tables del kernel de Linux que encontré. Puedes leer un análisis detallado de esta vulnerabilidad y la estrategia de explotación en mi blog.
Por ahora, el exploit es un poco desordenado. ¡Lo siento!
Los kernels posteriores al commit 345023b0db31 (v5.12) pero anteriores al commit 6e1acfa387b9 (v5.17) son vulnerables.
Es extremadamente improbable que este exploit obtenga una shell root para un kernel vulnerable determinado. Tendrás que experimentar con las ubicaciones de los hooks de las cadenas (input vs output, etc.), los offsets de fuga de direcciones de nft_bitwise, y los offsets de gadgets ROP y símbolos. Probé en 5.16-rc3+ y tuve que cambiar seriamente mi exploit para una compilación del kernel realizada con una versión diferente de gcc.
Dicho esto, con toda la información proporcionada en mi publicación del blog, creo que adaptar el exploit para un kernel vulnerable determinado debería ser factible.
Simplemente ejecuta make, y un ejecutable pwn debería aparecer en el directorio fuente. Necesitarás los paquetes de desarrollo de libmnl y libnftnl, así como los headers de Linux del objetivo.
Puedes especificar explícitamente los headers del kernel a usar, por ejemplo, con make CFLAGS="-I/path/to/linux-tree/usr/include".
Este código se distribuye bajo la licencia Beerware. No soy legalmente responsable de nada de lo que hagas con él.