
Esto es una prueba de concepto (por ahora bastante rudimentaria) para CVE-2023-4911. Hasta ahora solo he verificado que funciona en Ubuntu 22.10 kinetic. La versión actual del exploit contiene una cantidad considerable de offsets "mágicos". Si tienes sugerencias sobre cómo mejorar el modelado del heap, siéntete libre de enviarme un PR :).
Este exploit es básicamente una implementación de la excelente investigación de Qualys. Se desvía en algunos puntos. No es necesariamente porque crea que sé más, simplemente es lo que funcionó en mi máquina virtual. Probablemente haya margen de mejora.
make../exploit desde un directorio con permisos de escritura que contenga tanto suid_lib.so como exploit. Creará una carpeta llamada U en el directorio
actual y la poblará con las librerías necesarias.En mis pruebas limitadas, el exploit necesita entre 4000 y 8000 intentos. El rociado de pila (stack spray) no es tan bueno como el de la implementación de Qualys, así que tarda un poco más.
Aquí hay un ejemplo del exploit en acción (acelerado): https://youtu.be/uw0EJ5zGEKE
Si te apetece trastear con esto, aquí tienes algunas ideas para empezar: