Описан способ взлома Linux-систем с помощью Vim и Neovim
Злоумышленники могут скрыто выполнить команды на Linux-системе, просто заставив пользователя открыть безопасный на вид файл.
Исследователь безопасности Армин Размжу (Armin Razmjou) обнаружил опасную уязвимость удаленного выполнения команд (CVE-2019-12735) в популярных свободных редакторах Vim и Neovim, предустановленных на большинстве Linux-систем. Редактор Vim используется для создания, просмотра и редактирования файлов, в том числе текстовых, программных скриптов и документов. Поскольку проект Neovim является обновленной версией Vim, уязвимость также затрагивает и его.
Проблема заключается в том, как редактор Vim обрабатывает modeline (включенная по умолчанию функция, которая автоматически находит и применяет пользовательские настройки, указанные создателем файла в начале и конце строки).
Хотя редактор в целях безопасности разрешает только набор опций в modeline и использует песочницу, если он содержит небезопасное выражение, Размжу выяснил, что с помощью команды «:source!» (с модификатором bang [!]) можно обойти песочницу. Таким образом, злоумышленники могут скрыто выполнить команды на Linux-системе, просто заставив пользователя открыть безопасный на вид файл.
Исследователь опубликовал два PoC-кода для эксплуатации уязвимости. Разработчики Vim и Neovim уже выпустили исправленные версии ПО (версии 8.1.1365 и 0.3.6 соответственно).