Vulnerabilidad permite a usuario sin privilegios usar cualquier comando en Linux



Una cuenta de usuario con privilegios bajos en la mayoría de los sistemas operativos Linux con un valor UID superior a 2147483647 puede ejecutar cualquier comando systemctl sin autorización, gracias a una vulnerabilidad recientemente descubierta.

La vulnerabilidad informada reside realmente en PolicyKit (también conocido como polkit), un conjunto de herramientas de nivel de aplicación para sistemas operativos similares a Unix que define políticas, maneja privilegios de todo el sistema y proporciona una manera para que los procesos sin privilegios se comuniquen con los privilegiados, como como "sudo", que no otorga permiso de root a un proceso completo.

La vulnerabilidad, identificada como CVE-2018-19788, afecta a la versión 0.115 de PolicyKit, que viene preinstalada en las distribuciones de Linux más populares, incluyendo Red Hat, Debian, Ubuntu y CentOS

La vulnerabilidad existe debido a la validación incorrecta de PolicyKit de las solicitudes de permisos para cualquier usuario con privilegios bajos con UID mayor que INT_MAX.

Donde, INT_MAX es una constante en la programación de computadoras que define qué valor máximo puede almacenar una variable entera, lo que equivale a 2147483647 (en hexadecimal 0x7FFFFFFF).

Esto significa que, si crea una cuenta de usuario en los sistemas Linux afectados con un UID mayor que el valor INT_MAX, el componente PolicyKit le permitirá ejecutar cualquier comando systemctl con éxito.



El investigador de seguridad Rich Mirch, Twitter "0xm1rch", también ha lanzado un exploit de prueba de concepto (PoC) para demostrar con éxito la vulnerabilidad que requiere un usuario con el UID 4000000000.

Red Hat ha recomendado a los administradores del sistema que no permitan UID negativos o UID mayores a 2147483646 para mitigar el problema hasta que se lance el parche.