Una nueva vulnerabilidad de la herramienta sudo que ya ha sido corregida, permitió a cualquier usuario local obtener privilegios de root en sistemas operativos similares a Unix sin requerir autenticación.
sudo es un programa Unix que permite a los administradores del sistema proporcionar privilegios de root limitados a los usuarios normales que aparecen en el archivo de configuración 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 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.
La vulnerabilidad en cuestion que permite el escalamiento de privilegios de sudo identificada como CVE-2021-3156 (también conocida como Baron Samedit) fue descubierta por investigadores de seguridad de la empresa de seguridad Qualys, quienes la reportaron el 13 de enero y se aseguraron de que los parches estén disponibles antes de hacer públicos sus hallazgos.
Según los investigadores de Qualys, el problema es un desbordamiento de búfer basado en la pila explotable por cualquier usuario local (usuarios normales y usuarios del sistema, enumerados en el archivo sudoers o no) y no se requiere que los atacantes conozcan la contraseña del usuario para explotar con éxito esta falla.
Qualys creó tres exploits para explotar la vulnerabilidad CVE-2021-3156 para mostrar cómo los atacantes potenciales pueden abusar con éxito de esta fall.
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 los exploits que aprovechan la vulnerabilidad CVE-2021-3156 según Qualys.
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.
Esta vulnerabilidad se introdujo en el programa sudo hace casi 9 años, en julio del 2011, con el commit 8255ed69 y afecta 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 «usage:«.
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, registrada 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.