Una vulnerabilidad en systemd-coredump que permite determinar el contenido de la memoria de los programas suid

Se ha identificado una vulnerabilidad (CVE-2022-4415) en el componente systemd-coredump, que procesa archivos centrales generados después de que los procesos fallan, lo que permite a un usuario local sin privilegios determinar el contenido de la memoria de los procesos privilegiados que se ejecutan con el indicador raíz suid. El problema de configuración predeterminada ha sido confirmado en las distribuciones openSUSE, Arch, Debian, Fedora y SLES.

La vulnerabilidad se debe a la falta de procesamiento correcto del parámetro sysctl fs.suid_dumpable en systemd-coredump, que, cuando se establece en el valor predeterminado de 2, permite la generación de volcados de núcleo para procesos con el indicador suid. Se entiende que los archivos principales de los procesos suid escritos por el kernel deben tener derechos de acceso configurados para permitir la lectura sólo por parte del usuario root. La utilidad systemd-coredump, a la que el kernel llama para guardar los archivos principales, almacena el archivo principal con el ID raíz, pero además proporciona acceso de lectura basado en ACL a los archivos principales según el ID del propietario que inició originalmente el proceso. .

Esta característica le permite descargar archivos principales sin tener en cuenta el hecho de que el programa puede cambiar la ID de usuario y ejecutarse con privilegios elevados. El ataque se reduce al hecho de que un usuario puede iniciar una aplicación suid y enviarle una señal SIGSEGV, y luego cargar el contenido de un archivo central, que incluye una porción de memoria del proceso durante una terminación anormal.

Por ejemplo, un usuario puede ejecutar “/usr/bin/su” y en otra terminal finalizar su ejecución con el comando “kill -s SIGSEGV `pidof su`”, después de lo cual systemd-coredump guardará el archivo principal en /var /lib/systemd/ directorio coredump, estableciendo una ACL que permita la lectura por parte del usuario actual. Dado que la utilidad suid 'su' lee el contenido de /etc/shadow en la memoria, un atacante puede obtener acceso a información sobre los hashes de contraseñas de todos los usuarios del sistema. La utilidad sudo no es susceptible a ataques, ya que prohíbe la generación de archivos principales mediante ulimit.

Según los desarrolladores de systemd, la vulnerabilidad aparece a partir de la versión 247 de systemd (noviembre de 2020), pero según el investigador que identificó el problema, también se ve afectada la versión 246. La vulnerabilidad aparece si systemd está compilado con la biblioteca libacl (por defecto en todas las distribuciones populares). La solución está actualmente disponible como parche. Puede realizar un seguimiento de las correcciones en las distribuciones en las siguientes páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Como solución de seguridad, puede configurar sysctl fs.suid_dumpable en 0, lo que deshabilita el envío de volcados al controlador systemd-coredump.

Fuente: opennet.ru

Añadir un comentario