В предустановленных на многих дистрибутивах Linux версиях Vim и NeoVim найдена критическая уязвимость, которая позволяет злоумышленнику получить контроль над компьютером жертвы, если она откроет заражённый текстовый файл. Проблема так же касается и последней версии macOS, хотя атака сработает только если была включена опция `modelines`.
Как пояснил Armin Razmjou — исследователь, открывший уязвимость, хотя режим `modelines` и должен запускать команды исключительно в песочнице, команда
В качестве конкретного примера приводится текстовый файл, который сразу же после открытия запускает бекконнект шелл и перезаписывает своё содержимое, чтобы скрыть факт атаки:
Проблема актуальна для Vim до 8.1.1365 и Neovim до 0.3.6. Debian и Fedora уже начали выпуск патченных версий. А вот macOS всё ещё предлагает уязвимую восьмую версию редактора.
Так что если обновление вам пока не доступно, а `modelines` включены, вероятно, стоит эту опцию временно отключить.
[ источник ]
Как пояснил Armin Razmjou — исследователь, открывший уязвимость, хотя режим `modelines` и должен запускать команды исключительно в песочнице, команда
:source!
полностью обходит это ограничение и, таким образом, способна исполнить произвольные команды, как если бы они были вводились вручную.В качестве конкретного примера приводится текстовый файл, который сразу же после открытия запускает бекконнект шелл и перезаписывает своё содержимое, чтобы скрыть факт атаки:
Проблема актуальна для Vim до 8.1.1365 и Neovim до 0.3.6. Debian и Fedora уже начали выпуск патченных версий. А вот macOS всё ещё предлагает уязвимую восьмую версию редактора.
Так что если обновление вам пока не доступно, а `modelines` включены, вероятно, стоит эту опцию временно отключить.
[ источник ]
Комментарии (8)
razielvamp
17.06.2019 08:12А как можно сделать файл который в теле содержит обычный текст, а на самом деле там там строки кода, которые даже cat не отображает?
vladkorotnev
17.06.2019 09:30В данном случае при помощи escape-кодов терминала.
razielvamp
17.06.2019 14:51+1Можно ли тогда говорить, что у cat и bash если не уязвимость, то по-крайней мере баг?
cat должен отображать текст как есть, или форматирование спецсимволами это фича?vladkorotnev
17.06.2019 15:10+1Они в этом случае ни при чём. Баш это просто оболочка, а cat выдаёт просто поток байтов из файла в терминал (вообще в другой поток, но упрощённо скажем, что в терминал).
Форматирование спецсимволами — именно что фича самого терминала, обусловленная стандартом ещё из далёких времён, когда терминалы были отдельными устройствами.
saipr
Интересно а что думают по этому поводу наши импортозамещатели (и не выговоришь)?
Я что-то не слышал, чтобы они исправляли плюхи или, как в данном случае, готовили патч. Скорее всего они дождутся патча от своего прородителя:
balsoft
Патчить должны мейнтейнеры Vim, а дистростроителям нужно просто этот патч применить при сборке новых версий.
saipr
А что же тогда Debian и Fedora делают? А Базальт когда начнет выпуск патченных версий?
chupasaurus
Либо берут патч из апстрима (кода проекта), либо накладывают сами с указанием этого в версии (Debian такие апдейты обычно помечает -dfsg-число).