Ejecución Arbitraria de Código en Vim abriendo un archivo
Existe un fallo que afecta al modeline de Vim, permitiendo escapar del sandbox que emplea para ejecutar los comandos
El investigador Armin Razmjou ha encontrado un fallo en el editor de texto Vim y otros derivados de este, que permitiría la ejecución de código al abrir un fichero de texto especialmente manipulado. Para la explotación hace uso de las ‘modelines’, una opción que tiene Vim para establecer variables y opciones para la edición de un archivo.
El problema se encuentra en concreto en el comando ‘:source!’, el cual se utiliza para cargar opciones desde un fichero externo, y según ha podido comprobarse también podría permitir la ejecución de comandos. Vim para impedir este tipo de riesgos utiliza un sandbox con otros comandos como pueden ser ‘foldexpr’, ‘formatexpr’ o ‘includeexpr’. No obstante, el comando ‘source’ no se encontraba segurizado.
Armin ha creado una prueba de concepto (PoC) en su Github para comprobar si nuestra instalación de Vim es vulnerable. Es imprescindible para la prueba que no se encuentre deshabilitado el soporte para modeline (‘:set modeline’). Para la prueba, basta con añadir esta línea a un fichero, abrir el archivo con Vim y comprobar si se ejecuta ‘uname -a’:
Aunque no se utilice habitualmente Vim, es necesario recordar que en muchos sistemas es el editor de texto por defecto para el modo consola, por lo que podría ejecutarse por error, permitiendo la explotación. Puede comprobarse el editor por defecto en la variable de entorno ‘$EDITOR’.
La vulnerabilidad, la cual ha sido identificada como CVE-2019-12735, ya ha sido corregida en la versión 8.1.1365 de Vim y debería llegar como una actualización de seguridad en la mayoría de distribuciones.
Más información:
Vim/Neovim Arbitrary Code Execution via Modelines:
https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md
Powered by WPeMatico