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

En la utilidad Sudo, utilizada para organizar la ejecución de comandos en nombre de otros usuarios, se ha detectado vulnerabilidad (CVE-2019-14287), que permite ejecutar comandos con privilegios de root, si en la configuración de sudoers hay reglas en las que, en la sección de verificación del identificador de usuario, después de la palabra clave autorizante «ALL», hay una prohibición explícita para ejecutar como root («… (ALL, !root) …»). En las configuraciones predeterminadas de las distribuciones, la vulnerabilidad no se manifiesta.

Si en sudoers hay reglas permitidas, aunque extremadamente raras en la práctica, que permiten ejecutar un comando específico bajo un UID de cualquier usuario excepto root, un atacante con privilegios para ejecutar dicho comando puede eludir la restricción establecida y ejecutar el comando con privilegios de root. Para eludir la restricción, solo es necesario intentar ejecutar el comando especificado en la configuración con UID «-1» o «4294967295», lo que resultará en su ejecución con UID 0.

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

myhost ALL = (ALL, !root) /usr/bin/id

o una variante que permite la ejecución solo a un usuario específico llamado bob:

myhost bob = (ALL, !root) /usr/bin/id

El usuario puede ejecutar «sudo -u ‘#-1’ id» y la utilidad /usr/bin/id se ejecutará con privilegios de root, a pesar de la prohibición explícita en la configuración. El problema se debe a la omisión de los valores especiales «-1» o «4294967295», que no cambian el UID, pero dado que el propio sudo ya se está ejecutando como root, sin cambiar el UID, el comando objetivo también se ejecuta con privilegios de root.

En las distribuciones SUSE y openSUSE, sin especificar en la regla «NOPASSWD», la vulnerabilidad no es explotable, ya que en sudoers por defecto está habilitado el modo «Defaults targetpw» donde se verifica el UID contra la base de datos de contraseñas solicitando la introducción de la contraseña del usuario objetivo. Para tales sistemas, el ataque solo puede llevarse a cabo si hay reglas del tipo:

myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

El problema se ha resuelto en el lanzamiento Sudo 1.8.28. La solución también está disponible en forma parche. En las distribuciones, la vulnerabilidad ya se ha corregido en Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo y FreeBSD. En el momento de redactar esta noticia, el problema sigue sin solucionarse en RHEL y Fedora. La vulnerabilidad fue identificada por investigadores de seguridad de la empresa Apple.

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