Vulnerabilidad en Vim que lleva a la ejecución de código al abrir un archivo malicioso

En editores de texto Empuje и Neovim encontrado vulnerabilidad (CVE-2019-12735), que permite ejecutar código arbitrario al abrir un archivo especialmente diseñado. El problema ocurre cuando el modo de línea de modelo predeterminado (“:set modeline”) está activo, lo que le permite definir opciones de edición en el archivo procesado. Vulnerabilidad solucionada en versiones
Vim 8.1.1365 и Neovim 0.3.6.

Sólo se puede instalar un número limitado de opciones a través de modeline. Si se especifica una expresión como valor de opción, se ejecuta en modo sandbox, que solo permite las operaciones seguras más simples. En este caso, el comando válido incluye el comando “:source”, en el que puedes usar el modificador “!”. para ejecutar comandos arbitrarios desde el archivo especificado. Así, para ejecutar el código, basta con indicar en la línea del modelo una construcción como “set foldexpr=execute('\:source! some_file'):". En Neovim, está prohibido llamar a ejecutar, pero en su lugar se puede usar afirmar_fails.

Por ejemplo, para ejecutar el comando “uname -a”, simplemente abra un archivo en Vim o Neovim cuya primera o última línea diga:

:!uname -a||» vi:fen:fdm=expr:fde=assert_fails(“fuente\!\ \%”):fdl=0:fdt=”

Compañía “fuente! %" leerá los comandos del archivo actual y, en consecuencia, ejecutará ":!uname -a". Las secuencias de escape se pueden utilizar para ocultar una línea determinada de la salida de la utilidad cat. Por ejemplo, en este explotar prototipo al abrir un archivo en vim, se crea una conexión de red con acceso de shell al sistema de la víctima, pero este archivo no despertará sospechas cuando se envíe al terminal usando la utilidad cat.

Puede comprobar la actividad del modo modeline con el comando “:set modeline?”. Para desactivarlo, puede agregar la línea "set nomodeline" a vimrc. En las distribuciones el problema se soluciona en RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. La vulnerabilidad sigue sin parchearse en Debian (En Debian modeline está deshabilitado de forma predeterminada, por lo que la vulnerabilidad no aparece en el estado predeterminado).

Fuente: opennet.ru

Añadir un comentario