Tu Linux puede ser hackeado simplemente abriendo un archivo en Vim o Neovim
Usuario de Linux, ¡Ten cuidado!
Si no has actualizado recientemente tu sistema operativo Linux, especialmente la utilidad del editor de texto de línea de comandos, ni siquiera intentes ver el contenido de un archivo utilizando Vim o Neovim.
El investigador de seguridad Armin Razmjou descubrió recientemente una vulnerabilidad de ejecución de comandos de sistema operativo arbitrario de alta gravedad (CVE-2019-12735) en Vim y Neovim: dos de las aplicaciones de edición de texto de línea de comandos más populares y potentes que vienen preinstaladas con la mayoría de los sistemas operativos basados en Linux.
En los sistemas Linux, el editor Vim permite a los usuarios crear, ver o editar cualquier archivo, incluidos texto, scripts de programación y documentos.
Dado que Neovim es solo una versión extendida de Vim, con una mejor experiencia de usuario, complementos e interfaz gráfica, la vulnerabilidad de ejecución de código también está presente en este.
Fallo de Ejecución de Código en Vim y Neovim
Razmjou descubrió una falla en la forma en que el editor Vim maneja “modelines”, una característica que está habilitada por defecto para encontrar y aplicar automáticamente un conjunto de preferencias personalizadas, mencionadas por el creador de un archivo, cerca de las líneas de inicio y finalización del documento.
Aunque el editor solo permite un subconjunto de opciones en modelines (por razones de seguridad) y usa la protección de la sandbox si contiene una expresión insegura, Razmjou reveló que al usar “:source!” el comando (con un modificador bang [!]) se puede utilizar para evadir la sandbox.
Por lo tanto, solo abrir un archivo de aspecto inocente especialmente diseñado con Vim o Neovim podría permitir a los atacantes ejecutar comandos en secreto en tu sistema Linux y tomar control remoto sobre él.
El investigador también ha lanzado dos pruebas de concepto al público, una de las cuales demuestra un escenario de un ataque en la vida real en el que un atacante remoto obtiene acceso a una Shell inversa desde el sistema de la víctima tan pronto como este abre un archivo.
Los equipos de desarrollo de Vim (parche 8.1.1365) y Neovim (lanzado en v0.3.6) han lanzado actualizaciones para ambas utilidades para solucionar el problema, que los usuarios deben instalar tan pronto como sea posible.
Además de esto, el investigador también ha recomendado a los usuarios las siguientes medidas:
- Deshabilitar la función modelines,
- Deshabilitar “modelineexpr” para no permitir expresiones en modelines,
- Usar “securemodelines plugin”, una alternativa segura a modelines en Vim.