Linux puede ser hackeado con sólo abrir un archivo de texto

El experto en seguridad  Armin Razmjou detectó recientemente una vulnerabilidad de ejecución de comando de sistema operativo arbitraria de alto riesgo (CVE-2019-12735) en Vim y Neovim.
Para aquellos que no lo saben, Vim y Neovim son las dos de las aplicaciones de edición de texto de línea de comandos más populares y potentes que vienen preinstaladas en la mayoría de las distribuciones de Linux. 

Vim es un editor de texto que permite a los usuarios crear, ver o editar cualquier archivo, incluidos textos, documentos y scripts de programación. 

Por otro lado, Neovim es un derivado de Vim que tiene como objetivo mejorar la experiencia del usuario, los complementos y las GUI (interfaces gráficas de usuario). Como resultado, la vulnerabilidad de ejecución de código también está presente en Neovim.
vulnerabilidades en linux 2019
“Vim anteriores a 8.1.1365 y Neovim anteriores a 0.3.6 son vulnerables a la ejecución de código arbitrario a través de modelines al abrir un archivo de texto especialmente diseñado”, se lee en  aviso de seguridad  publicado por el experto.

Funcionamiento

Razmjou descubrió la vulnerabilidad en la forma en que el editor Vim maneja la opción "modelines". La función modelines permite especificar opciones de editor personalizadas cerca del inicio o final de un archivo. Esta función está habilitada de forma predeterminada y se aplica a todos los tipos de archivos, incluido los .txt simples.

Solo se permite un subconjunto de opciones en las modelines por razones de seguridad, y si una expresión se incluye en el valor de la opción, se ejecuta en un entorno limitado.

Sin embargo, Razmjou descubrió que el comando :source! (con el modificador bang [ ! ]) se puede usar para omitir el sandbox. Lee y ejecuta los comandos de un archivo dado como si se escribiera manualmente, ejecutándolos después de que se haya dejado el sandbox. En otras palabras, es posible desarrollar una modeline que pueda ejecutar el código fuera de la sandbox.

El experto demostró que es posible que los atacantes exploten la vulnerabilidad CVE-2019-12735, lo que les permite hackear los sistemas de la víctima engañándolos para que abran un archivo de aspecto inocente, especialmente diseñado en Vim o Neovim.

Prueba de concepto

Razmjou lanzó dos vulnerabilidades de prueba de concepto al público, una de las cuales demuestra un escenario de ataque en la vida real en el que un atacante remoto obtiene acceso a una shell inversa.

“Esta prueba de concepto describe un enfoque de ataque en la vida real en el que se inicia un shell inverso una vez que el usuario abre el archivo. Para ocultar el ataque, el archivo se volverá a escribir inmediatamente cuando se abra", continúa la publicación. “Además, la prueba de concepto utiliza secuencias de escape de terminal para ocultar la modeline cuando el contenido se imprime con cat. (cat -v revela el contenido real).

Los equipos de desarrollo de Vim (parche 8.1.1365) y Neovim (lanzado en v0.3.6) ya han lanzado actualizaciones de seguridad en ambas utilidades para solucionar la vulnerabilidad.

Además de los parches, el investigador de seguridad también sugiere a los usuarios:
  • Deshabilitar la función modelines en el vimrc (establecer nomodeline )
  • Usar el "complemento de securemodelines", una alternativa segura a modelines en Vim
  • Deshabilitar "modelineexpr" para no permitir expresiones en modelines.
¿Qué opinas sobre esta vulnerabilidad? ¿Eres usuario de Linux, ya actualizaste? Hazme el favor de compartir el post en las redes sociales.

Tu opinión es importante para mí, porque me ayuda a mejorar. Si te gustó el articulo o tienes alguna sugerencia, déjame tu comentario con tu nombre para poder responderte tan pronto como pueda.

Publicar un comentario (0)
Artículo Anterior Siguiente Artículo