Vulnerabilidad en systemd-coredump que permite determinar el contenido de la memoria de programas suid

En el componente systemd-coredump, que se encarga del manejo de archivos core generados tras el cierre inesperado de procesos, se ha identificado una vulnerabilidad (CVE-2022-4415) que permite a un usuario local no privilegiado determinar el contenido de la memoria de procesos privilegiados que se ejecutan con la bandera suid root. Se ha confirmado la existencia del problema en la configuración predeterminada en las distribuciones openSUSE, Arch, Debian, Fedora y SLES.

La vulnerabilidad es causada por la falta de un manejo adecuado del parámetro sysctl fs.suid_dumpable en systemd-coredump, que con un valor predeterminado de 2 permite la generación de volcado core para procesos con la bandera suid. Se supone que los archivos core escritos por el núcleo de los procesos suid deben tener permisos que solo permitan la lectura al usuario root. La utilidad systemd-coredump, que es invocada por el núcleo para guardar los archivos core, guarda el archivo core bajo el identificador root, pero adicionalmente proporciona acceso a los archivos core basado en ACL, permitiendo la lectura basada en el identificador del propietario que inicialmente inició el proceso.

Esta característica permite cargar archivos core sin tener en cuenta que el programa puede cambiar el identificador del usuario y ejecutarse con privilegios elevados. El ataque se basa en que el usuario puede iniciar una aplicación suid y enviarle la señal SIGSEGV, después de lo cual puede cargar el contenido del archivo core que incluye un fragmento de la memoria del proceso durante el cierre inesperado.

Por ejemplo, un usuario puede iniciar «/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 core en el directorio /var/lib/systemd/coredump, estableciendo una ACL que permite la lectura al usuario actual. Dado que la utilidad suid 'su' lee en memoria el contenido de /etc/shadow, el atacante puede acceder a la información de los hashes de contraseñas de todos los usuarios en el sistema. La utilidad sudo no es susceptible al ataque, ya que prohíbe la generación de archivos core a través de 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 es vulnerable la versión 246. La vulnerabilidad se manifiesta si systemd se compila con la biblioteca libacl (que por defecto está presente en todas las distribuciones populares). Por el momento, la corrección está disponible en forma de un parche. Se puede seguir la corrección en las distribuciones a través de las siguientes páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch. Como solución alternativa, se puede establecer sysctl fs.suid_dumpable en 0, deshabilitando así la transferencia de volcado al manejador systemd-coredump.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster