13 nov. 2020

Vulnerabilidad en GNOME Display Manager (Parchea Ubuntu!)

Una vulnerabilidad en GNOME Display Manager (gdm) podría permitir a un usuario estándar crear cuentas con mayores privilegios, dando a un atacante local una ruta para ejecutar código con permisos de administrador (root).

Aunque son necesarias ciertas condiciones, el error es fácil de explotar. El proceso implica ejecutar algunos comandos simples en la terminal y modificar la configuración general del sistema que no requiere mayores derechos. Este error ahora se registró como CVE-2020-16125 y se clasificó con una puntuación de gravedad alta de 7,2 sobre 10. Afecta a Ubuntu 20.10, Ubuntu 20.04 y Ubuntu 18.04.

Agregar nuevo administrador

La explotación del error en gdm3 aprovecha el bloqueo del componente AccountsService, que realiza un seguimiento de los usuarios disponibles en el sistema. Además de manejar los administradores de visualización gráfica, gdm3 también es responsable de mostrar la interfaz de inicio de sesión del usuario en sistemas operativos similares a Unix.

El investigador de seguridad de GitHub, Kevin Backhouse, descubrió una forma sencilla de engañar a un sistema Ubuntu ya configurado para que ejecute la rutina de configuración de la cuenta para un nuevo sistema. Este escenario requiere una cuenta de administrador para configurar la máquina e instalar aplicaciones. El investigador descubrió que gdm3 desencadenaba esta secuencia cuando el "daemon de cuentas" del componente AccountsService no se estaba ejecutando. Un usuario estándar no debería poder detenerlo.

Sin embargo, Backhouse descubrió dos vulnerabilidades en AccountsService que provocaron que el componente se bloqueara (CVE-2020-16127) y eliminara los privilegios de la cuenta de usuario (CVE-2020-16126), lo que permitió a un usuario estándar bloquear el demonio enviándole una señal de falla de segmentación retrasada (kill -SIGSEGV). El retraso es necesario para dar tiempo a cerrar sesión en la sesión actual o el usuario está bloqueado.

En la CVE-2020-16127, el investigador explica en una publicación de blog que el error fue causado por el código agregado a la versión de AccountService de Ubuntu que no existe en la versión original mantenida por freedesktop: el parche de Ubuntu agrega una función llamada is_in_pam_environment, que busca un archivo llamado .pam_environment en el directorio de inicio del usuario y lo lee. La vulnerabilidad de denegación de servicio funciona al convertir .pam_environment en un enlace simbólico a /dev/zero que es un archivo especial que en realidad no existe en el disco. Lo proporciona el sistema operativo y se comporta como un archivo infinitamente largo en el que cada byte es cero. Cuando is_in_pam_environment intenta leer .pam_environment, el enlace simbólico lo redirige a /dev/ zero y luego se atasca en un bucle infinito porque /dev/zero es infinitamente largo.

Su activación fue posible haciendo una modificación en la Configuración del sistema que no requería privilegios elevados. Backhouse decidió cambiar el idioma. Sin el servicio de cuentas en ejecución, gdm3 no tiene ni idea de las cuentas presentes en la máquina y ofrece la opción de crear una nueva con privilegios de root, como en el caso de una configuración inicial.

Backhouse creó un video que muestra lo fácil que fue para él explotar la vulnerabilidad gdm3 en Ubuntu 20.04.

Backhouse publicó el lunes informes separados para estas tres vulnerabilidades [1, 2] que ofrecen detalles técnicos. Los informó a los mantenedores de Ubuntu y GNOME el 17 de octubre, y las correcciones están disponibles en el código más reciente.

Fuente: UnderC0de

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!