Esta es la nueva vulnerabilidad del comando Sudo en Linux

Sudo es la utilidad pre-instalada en sistemas operativos Linux más popular que existe, pero una nueva vulnerabilidad de nombre CVE-2021-3156 está permitiendo que usuarios no autorizados puedan obtener privilegios de superusuario. Es decir, los atacantes no van a necesitar saber que la clave de tu sistema es 123456 para acceder.

Vulnerabilidad del comando Sudo: nueva, pero no tan nueva 

Investigadores de Qualy, empresa desarrolladora de plataformas Cloud, descubrieron que esta vulnerabilidad ha sido arrastrada por sudo desde el año 2011, tanto, que ha impactado a todas las versiones de sudo desde la 1.8.2 hasta la 1.9.5p1. Es decir, ¡todas las versiones que están en uso actualmente!

El impacto es tan grande que, Mehul Revankar, vicepresidente de administración e ingeniería de Qualys expuso lo siguiente: «Esta vulnerabilidad es quizás la vulnerabilidad de sudo más importante en los últimos tiempos, tanto en términos de alcance como de impacto y se ha estado escondiendo a la vista durante casi 10 años» Al mismo tiempo, señaló que es probable que existan millones de servidores activos susceptibles a la vulnerabilidad.

Vulnerabilidad del comando Sudo

Nueva vulnerabilidad de sudo: el problema

Cuando sudo ejecuta un programa en la Shell, ya sea con los comandos –i o –s sucede lo siguiente:

· Escapa los caracteres especiales en el argumento de los comandos con una barra invertida ( \ ).

· Luego, el complemento de políticas sudoers elimina los caracteres de escape de los argumentos antes de que sean evaluados como tal En este punto se empieza a manifestar la vulnerabilidad.

Un bug en el código que remueve los caracteres de escape leerá más allá del último carácter si este termina con un solo carácter de barra invertida.

En circunstancias normales, el bug sería inofensivo debido a que sudo ha escapado todas las barras invertidas en los argumentos del comando.

Debido a un bug diferente, esta vez en el intérprete de la línea de comandos, es posible ejecutar sudoedit ya sea con las opciones –i o –s y establecer una señal que indica que la Shell está habilitada.

En este punto ningún comando está siendo ejecutado, por lo tanto, sudo no está escapando los caracteres especiales. Por consiguiente, el código que decide si se eliminan los caracteres de escape no verifica si un comando se está ejecutando realmente, solo que el indicador de Shell está configurado. Esta inconsistencia es lo que hace que la vulnerabilidad sea explotable.

Entendiendo el problema

La vulnerabilidad fundamental es que sudo no está procesando los caracteres de escape correctamente, así que si escribimos algo como esto en la Shell:

Caso de prueba con comandos que replican la vulnerabilidad de sudo

Y al ejecutarlo, obtenemos algo como lo siguiente, lamentablemente la vulnerabilidad está activa en nuestros sistemas:

Caso de prueba con mensaje indicativo de que la vulnerabilidad existe en el sistema

Ese mensaje básicamente significa que se generó un Buffer overflow (desborde de memoria)

Sudo intenta asignar algo en el “heap” y la función malloc() dice “espera un momento, esto es un desastre”, debido a que toda la estructura que utiliza malloc() para rastrear la ubicación de datos ahora está corrupta.

Como resultado de esto, los desbordamientos de memoria generan un salto a otro espacio de memoria, lo que podría traer como consecuencia una escala desautorizada de privilegios en el sistema.

Por razones de seguridad, no compartiremos ninguna forma de explotar esta vulnerabilidad. Debemos proteger la computadora de tu ex. Aunque, si utilizaba Linux, probablemente debieron haberse casado.

La solución a la nueva vulnerabilidad del comando Sudo

Por fortuna, esta vulnerabilidad cuenta con una solución inmediata y para nada tortuosa que te explciaremos ahora mismo.

Solo es cuestión de instalar la nueva versión estable de la herramienta sudo (1.9.5p2), y el sistema estará completamente a salvo de usuarios no autorizados.

Compartimos contigo la serie de pasos para obtener e instalar la nueva versión de sudo en tu sistema

Como regalo, compartimos contigo la serie de pasos para obtener e instalar la nueva versión de sudo en tu sistema. Quizás quieras hacer el respaldo de información apropiado, ya sabes, por si algo se rompe:

wget https://www.sudo.ws/dist/sudo-1.9.5p2.tar.gz
cd sudo-1.9.5p2
./configure
 make && sudo make install
 bash –c “sudo –version”

Si al finalizar el proceso de instalación ejecutas de nuevo la línea de comando “sudoedit -s ‘0123456789123456789\’ obtendrás algo similar al siguiente mensaje:

usage: sudoedit [-AknS] [-C num] [-D directory]

[-g group] [-h host]…”

¡Felicidades! Tu sistema está libre de la peligrosa vulnerabilidad.

¿Te encontraste con esta vulnerabilidad del comando Sudoen tu sistema operativo? ¿Te funcionó nuestra solución? Cuéntanos todo en los comentarios.

Fuentes:

https://securityaffairs.co/wordpress/113900/hacking/sudo-vulnerability-cve-2021-3156.html

https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit
Scroll to Top