Vim, por sus siglas en Ingles "Vi improved" es una versión mejorada del editor de texto vi, presente en todos los sistemas UNIX. Su autor, Bram Moolenaar, presentó la primera versión en 1991, fecha desde la que ha experimentado muchas mejoras.
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.
Explotación de la vulnerabilidad
Este fallo es debido a una característica llamada "modelines", que básicamente le permite al editor de texto (incluyendo Neovim) cargar desde cualquier fichero una configuración personalizada.Esta característica viene habilitada por defecto en estos editores que, si el usuario lo desea, la puede desactivar. El problema yace es que la mayoría de usuarios no lo hacen, ocasionando un posible control total a un atacante.
Como apoda el título de este artículo con un simple archivo de texto con un modeline específico y simple es posible conseguir ejecutar código directamente en la memoria del sistema. Aunque Vim y Neovim pueden ejecutar los comandos peligrosos dentro de un sandbox, al utilizar "source" en la línea del código se consigue salir de este aislamiento.
HackPlayers ha publicado una PoC y Numirias ha creado un paso a paso con el código.
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.
Fuente: Hispasec
No hay comentarios.:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!