Vulnerabilidad en sudo que permite escalar privilegios al usar reglas específicas

en la utilidad Sudo, utilizado para organizar la ejecución de comandos en nombre de otros usuarios, identificado vulnerabilidad (CVE-2019-14287), que le permite ejecutar comandos con derechos de root, si hay reglas en la configuración de sudoers en las que en la sección de verificación de ID de usuario después de la palabra clave que permite "TODOS" hay una prohibición explícita de ejecutar con derechos de root ("... (TODOS, !raíz)..." ). La vulnerabilidad no aparece en las configuraciones predeterminadas de las distribuciones.

Si sudoers tiene reglas válidas, pero extremadamente raras en la práctica, que permiten la ejecución de un determinado comando bajo el UID de cualquier usuario que no sea root, un atacante que tenga la autoridad para ejecutar este comando puede eludir la restricción establecida y ejecutar el comando con derechos de raíz. Para evitar la limitación, simplemente intente ejecutar el comando especificado en la configuración con UID “-1” o “4294967295”, lo que conducirá a su ejecución con UID 0.

Por ejemplo, si hay una regla en la configuración que otorga a cualquier usuario el derecho de ejecutar el programa /usr/bin/id bajo cualquier UID:

mihost TODOS = (TODOS, !raíz) /usr/bin/id

o una opción que permite la ejecución solo para un usuario específico bob:

mihost bob = (TODOS, !raíz) /usr/bin/id

El usuario puede ejecutar “sudo -u '#-1' id” y la utilidad /usr/bin/id se iniciará como root, a pesar de la prohibición explícita en la configuración. El problema se debe a que se pasan por alto los valores especiales “-1” o “4294967295”, que no conducen a un cambio en el UID, pero como sudo ya se está ejecutando como root, sin cambiar el UID, el comando de destino también se ejecuta. lanzado con derechos de root.

En distribuciones SUSE y openSUSE, sin especificar “NOPASSWD” en la regla, existe una vulnerabilidad no explotable, ya que en sudoers el modo "Defaults targetpw" está habilitado de forma predeterminada, que verifica el UID con la base de datos de contraseñas y le solicita que ingrese la contraseña del usuario de destino. Para tales sistemas, un ataque sólo se puede llevar a cabo si existen reglas de la forma:

mihost TODOS = (TODOS, !raíz) NOPASSWD: /usr/bin/id

Problema solucionado en la versión sudo 1.8.28. La solución también está disponible en el formulario. parche. En los kits de distribución, la vulnerabilidad ya se ha solucionado en Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD. En el momento de escribir este artículo, el problema sigue sin solucionarse en RHEL и Fedora. La vulnerabilidad fue identificada por investigadores de seguridad de Apple.

Fuente: opennet.ru

Añadir un comentario