El investigador de seguridad Armin Razmjou descubrió recientemente una vulnerabilidad de alta gravedad (CVE-2019-12735) en Vim y Neovim que permite ejecutar comandos en el sistema operativo y tomar el control del equipo de forma remota.
Vim es una potente aplicación de edición de texto que está presente en todos los sistemas UNIX y en muchas distribuciones GNU/Linux que la ofrecen preinstalada, permitiendo 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 y GUI, la vulnerabilidad de ejecución de código también reside en ella. El fallo reside en la manera que el editor maneja los «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 acerca 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 protección sandbox si contiene una expresión insegura, Razmjou encontró que podía usar el comando «:source!» (con un modificador!) para saltar la caja de arena.
Por lo tanto, con solo abrir con Vim o Neovim un archivo de aspecto inocente especialmente diseñado, podría permitir a los atacantes ejecutar secreta y remotamente comandos Linux para tomar el control de la máquina. El investigador ha publicado dos pruebas de concepto de este tipo de ataques.
Vim (parche 8.1.1365) y Neovim (parche v0.3.6) han sido actualizados para solucionar la vulnerabilidad. Se recomienda a los usuarios aplicarlos tan pronto como sea posible. Además, el investigador recomienda:
- Deshabilitar la función modelines.
- Deshabilitar «modelineexpr» para no permitir expresiones en modelines.
- Usar «securemodelines plugin», una alternativa segura a los modelines de Vim.
Fuente:https://www.muyseguridad.net