
Exploit de escalada de privilegios local para CVE-2021-4034 en pkexec, que proporciona una prueba de concepto que otorga un shell de root en sistemas vulnerables.
Este repositorio contiene un exploit de CVE-2021-4034, una escalada de
privilegios local en pkexec. Esta implementación se basa en la
descrita en la divulgación de la
CVE, que deberías leer.
Si esto funciona en tu máquina, significa que eres vulnerable. Para
solucionarlo, actualiza polkit a una versión parcheada, o deshabilita el bit
setuid en pkexec con lo siguiente:
$ sudo chmod a-s $(which pkexec)
Este exploit es peligrosamente fácil de escribir basándose en la información de la divulgación, así que parchea todas tus máquinas lo antes posible.
Para ejecutar este exploit, simplemente ejecuta make en el directorio
de nivel superior. Esto:
exploit.c, que ejecuta el exploitgconv/badconv.c, que contiene la carga útil./exploitSi esto te lleva a una shell como root, tu sistema es vulnerable.
Si obtienes la siguiente salida, has mitigado con éxito el fallo
usando el comando chmod anterior:
Running exploit...
GLib: Cannot convert message: Could not open converter from “UTF-8” to “ZT”
pkexec must be setuid root
Si obtienes el mensaje de ayuda de pkexec como salida, tu sistema
probablemente ya estaba parcheado.
Esta implementación debería funcionar en cualquier sistema vulnerable, incluidos Fedora 34+ y algunas versiones de OpenSUSE que parecen no ser vulnerables a algunas implementaciones. Específicamente, esto funcionará incluso si tu sistema tiene una versión de polkit que deshabilita GVFS (añadido aquí). Dicho esto, no tengo experiencia formal en seguridad informática y puede informar que tu sistema está parcheado, incluso si sigue siendo vulnerable a este u otros exploits similares. Por lo tanto, deberías asegurarte de mantener tus sistemas actualizados, escuchar a las personas que saben de lo que hablan, y siempre comer tus verduras.