Исправлена новая уязвимость в предустановленных текстовых редакторах различных дистрибутивов. Linux был найден в текстовых редакторах Vim и Neovim (CVE-2019-12735).
Ошибка, обнаруженная в этих редакторах позволяет хакерам контролировать компьютеры, когда пользователи открывают вредоносный текстовый файл. Проблема проявляется в том, что по умолчанию активирована модельная линия (": set modeline"), что позволяет вам определять параметры редактирования в обрабатываемом файле.
Vim и его форк NeoVim содержали недостаток, присущий моделям. Эта функция позволяет пользователям указывать размеры окна и другие настраиваемые параметры в начале или в конце текстового файла.
Эта функция включена по умолчанию в версиях до Vim 8.1.1365 Neovim 0.3.6 и применяется ко всем типам файлов, включая файлы .txt.
Об уязвимости в Vim
Через Modeline, допускается только ограниченное количество опций. SЕсли выражение указано в качестве значения параметра, оно запускается в режиме песочницы, который позволяет использовать только самые простые безопасные операции.
Al mismo tiempo, команда ": source" - одна из разрешенных, в которой вы можете использовать модификатор "!" для запуска произвольных команд из указанного файла.
Следовательно, чтобы выполнить код, достаточно указать в строке режима конструкцию вида «set foldexpr = execute ('\: source! Some_file'):». В Neovim вызов выполнения запрещен, но вместо него можно использовать assert_fails.
С другой стороны, в песочнице он предназначен для предотвращения побочных эффектов:
Параметры 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' и 'foldtext' можно оценить в песочнице. Это означает, что вы защищены от этих выражений с неприятными побочными эффектами. Это обеспечивает некоторую безопасность, когда эти параметры определяются из модели.
Хотя модели ограничивают доступные команды и выполняют их в среде, изолированной от операционной системы, исследователь Армин Размжу отметил, что команда: font! обошли эту защиту:
«Она читает и выполняет команды в заданном файле, как если бы они были введены вручную, выполняя их после того, как песочница была покинута», - написал исследователь в сообщении, опубликованном ранее в этом месяце. -ci.
Таким образом, можно легко построить модельную линейку, которая выполняет код вне песочницы.
Сообщение включает два проверочных текстовых файла., один из которых наглядно иллюстрирует угрозу.
Один из них открывает обратную оболочку на компьютере под управлением Vim или NeoVim. Оттуда злоумышленники могли запускать команды по своему выбору на реквизированной машине.
«Этот PoC описывает реальный подход к атаке, при котором обратная оболочка запускается, когда пользователь открывает файл», - написал Размджоу. «Чтобы скрыть атаку, файл будет сразу переписан при открытии. Кроме того, PoC использует escape-последовательности терминала, чтобы скрыть модельную строку, когда контент печатается с помощью cat. (cat -v показывает фактическое содержимое). «
Уязвимость выполнения команд требует активации стандартных функций моделирования., как и в некоторых дистрибутивах Linux по умолчанию. Дефект обнаружен в Vim до версии 8.1.1365 и в Neovim до версии 0.3.6.
Этот совет из Национальной базы данных уязвимостей Национального института стандартов и технологий показывает, что дистрибутивы Debian и Fedora Linux начали выпускать исправленные версии.
В дистрибутивах проблема решена в RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT.
Уязвимость остается неисправленной в Debian. (В режиме Debian она отключена по умолчанию, поэтому уязвимость не проявляется в состоянии по умолчанию).
Последняя версия MacOS продолжает использовать уязвимую версию, хотя атаки работают только тогда, когда пользователи изменили настройку по умолчанию, в которой включена функция модели.