Una vulnerabilidad Sudo ahora corregida permitió a cualquier usuario local obtener privilegios de root en sistemas operativos similares a Unix sin requerir autenticación.
Sudo es un programa de Unix que permite a los administradores del sistema proporcionar privilegios de root limitados a los usuarios normales que figuran en el archivo sudoers, mientras que al mismo tiempo mantienen un registro de su actividad.
Funciona según el principio de privilegio mínimo, en el que el programa otorga a las personas los permisos necesarios para realizar su trabajo sin comprometer la seguridad general del sistema.
Al ejecutar comandos en un sistema operativo similar a Unix, los usuarios sin privilegios pueden usar el comando sudo (superuser do) para ejecutar comandos como root si tienen permiso o conocen la contraseña del usuario root; root es el superusuario del sistema, una cuenta especial de administración del sistema.
Sudo también se puede configurar para permitir que los usuarios normales ejecuten comandos como cualquier otro usuario al incluir directivas especiales en el archivo de configuración de sudoers.
Privilegios de root para cualquier usuario local
La vulnerabilidad de escalada de privilegios de Sudo rastreada como CVE-2021-3156 (también conocida como Baron Samedit) fue descubierta por investigadores de seguridad de Qualys, quienes la revelaron el 13 de enero y se aseguraron de que los parches estuvieran disponibles antes de hacer públicos sus hallazgos.
Según los investigadores de Qualys, el problema es un desbordamiento de búfer basado en el montón que puede explotar cualquier usuario local (usuarios normales y usuarios del sistema, incluidos en el archivo sudoers o no), y no se requiere que los atacantes conozcan la contraseña del usuario para aprovechar con éxito la falla.
El desbordamiento del búfer que permite a cualquier usuario local obtener privilegios de root se activa cuando Sudo elimina incorrectamente las barras diagonales inversas en los argumentos.
«Normalmente, sudo escapa de los caracteres especiales cuando se ejecuta un comando a través de un shell (sudo -s o sudo -i)», se lee en el registro de cambios 1.9.5p2.
«Sin embargo, también era posible ejecutar sudoedit con los indicadores -s o -i, en cuyo caso no se había realizado ningún escape, haciendo posible un desbordamiento del búfer».
Qualys creó tres exploits CVE-2021-3156 para mostrar cómo los atacantes potenciales pueden abusar con éxito de esta vulnerabilidad.
Usando estos exploits, los investigadores pudieron obtener privilegios de root completos en múltiples distribuciones de Linux, incluyendo Debian 10 (Sudo 1.8.27), Ubuntu 20.04 (Sudo 1.8.31) y Fedora 33 (Sudo 1.9.2).
Otros sistemas operativos y distribuciones compatibles con Sudo probablemente también sean explotables utilizando exploits CVE-2021-3156 según Qualys.
Más detalles técnicos sobre cómo se puede explotar CVE-2021-3156 están disponibles en el aviso de seguridad CVE-2021-3156 de Qualys publicado el martes.
Fallo del barón Samedit solucionado antes de la divulgación
La vulnerabilidad se introdujo en el programa Sudo hace casi 9 años, en julio de 2011, con el compromiso 8255ed69 , y afecta a las configuraciones predeterminadas de todas las versiones estables desde 1.9.0 a 1.9.5p1 y todas las versiones heredadas desde 1.8.2 a 1.8.31p2 .
Los colaboradores de Sudo han solucionado la vulnerabilidad en la versión de sudo 1.9.5p2 lanzada hoy, al mismo tiempo que Qualys reveló públicamente sus hallazgos.
Para probar si su sistema es vulnerable, debe iniciar sesión como usuario no root y ejecutar el comando » sudoedit -s / «. Los sistemas vulnerables arrojarán un error que comienza con «sudoedit:» mientras que los parcheados mostrarán un error que comenzará con «uso:».
Los administradores del sistema que usan Sudo para delegar privilegios de root a sus usuarios deben actualizar inmediatamente a sudo 1.9.5p2 o posterior tan pronto como sea posible.
En 2019, otra vulnerabilidad de Sudo, rastreada como CVE-2019-14287 , permitió a los usuarios sin privilegios ejecutar comandos como root .
Afortunadamente, esa falla solo se podía aprovechar en configuraciones no estándar, lo que significaba que la mayoría de los sistemas que ejecutaban versiones vulnerables de Sudo no se veían afectados.