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