Vulnerabilidad de sudo root que afecta a Linux Mint y Elementary OS

en la utilidad sudo, utilizado para organizar la ejecución de comandos en nombre de otros usuarios, identificado vulnerabilidad (CVE-2019-18634), que le permite aumentar sus privilegios en el sistema al usuario root. El problema solo aparece desde el lanzamiento de Sudo 1.7.1 cuando se usa la opción “pwfeedback” en el archivo /etc/sudoers, que está deshabilitada de forma predeterminada pero habilitada en algunas distribuciones como Linux Mint y Elementary OS. Problema solucionado en la versión sudo 1.8.31, publicado hace unas horas. La vulnerabilidad sigue sin solucionarse en los kits de distribución.

La opción “pwfeedback” habilita la visualización del carácter “*” después de cada carácter ingresado al ingresar una contraseña. Porque Errores En la implementación de la función getln(), definida en el archivo tgetpass.c, una cadena de contraseña demasiado grande pasada a través del flujo de entrada estándar (stdin) bajo ciertas condiciones puede no caber en el búfer asignado y sobrescribir otros datos en la pila. El desbordamiento se produce cuando se ejecuta el código sudo como root.

La esencia del problema es que cuando se utiliza el carácter especial ^U (borrado de línea) durante la entrada y si la operación de escritura falla, el código responsable de borrar los caracteres "*" de salida restablece los datos en el tamaño de búfer disponible, pero no devuelve el puntero a la posición actual del valor inicial en el búfer. Otro factor que contribuye a la explotación es la falta de desactivación automática del modo "pwfeedback" cuando los datos no llegan desde el terminal, sino a través del flujo de entrada (esta falla permite crear condiciones para que ocurra un error de grabación, por ejemplo, en sistemas con unidireccional canales sin nombre se produce un error al intentar escribir al final de un canal de lectura).

Dado que un atacante tiene control total sobre la sobrescritura de datos en la pila, no es difícil crear un exploit que le permita escalar sus privilegios a root. El problema puede ser aprovechado por cualquier usuario, independientemente de los permisos de sudo o de la configuración específica del usuario en sudoers. Para bloquear el problema, debe asegurarse de que no haya ninguna configuración de “pwfeedback” en /etc/sudoers y, si es necesario, deshabilítela (“Valores predeterminados !pwfeedback”). Para comprobar si hay algún problema, puede ejecutar el código:

$ perl -e 'imprimir(("A" x 100 . "\x{00}") x 50)' | sudo -S identificación
Contraseña: Fallo de segmentación

Fuente: opennet.ru

Añadir un comentario