URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 117609
[ Назад ]

Исходное сообщение
"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."

Отправлено opennews , 12-Июн-19 23:40 
В текстовых редакторах Vim (https://www.vim.org/) и Neovim (https://neovim.io/) найдена уязвимость (https://github.com/numirias/security/blob/master/doc/2019-06...) (CVE-2019-12735 (https://security-tracker.debian.org/tracker/CVE-2019-12735)), позволяющая выполнить произвольный код при открытии специально оформленного файла. Проблема проявляется при активности включенного по умолчанию режима modeline (":set modeline"), который позволяет определить в обрабатываемом файле опции редактирования. Уязвимость  устранена в выпусках
Vim  8.1.1365 (https://github.com/vim/vim/commit/5357552) и Neovim 0.3.6 (https://github.com/neovim/neovim/pull/10082).


Через modeline  допускается установка только ограниченного числа опций. Если в качестве значения опции указывается выражение, то оно выполняется в режиме sandbox, допускающем применение только простейших безопасных операций. При этом в число допустимых входит команда ":source", в которой можно использовать модификатор "!" для запуска произвольных команд из указанного файла. Таким образом для выполнения кода достаточно указать в строке modeline конструкцию вида "set foldexpr=execute('\:source! some_file'):". В Neovim вызов execute запрещён, но вместо него можно использовать assert_fails.


Например, для выполнения команды "uname -a" достаточно просто открыть в Vim или Neovim файл, в первой или последней строке которого указано:


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


Компанда "source! %" прочитает команды из текущего файла и,  соответственно, выполнит ":!uname -a". Для скрытия данной строки от вывода утилитой cat могут использоваться escape-последовательности. Например, в данном прототипе эксплоита (https://github.com/numirias/security/blob/master/data/2019-0...) при открытии файла в vim создаётся сетевое соединение с shell-доступом на систему жертвы, но при этом данный файл не вызовет подозрений при выводе в терминал утилитой cat.


Проверить активность режима modeline можно командой ":set modeline?". Для отключения в  vimrc можно добавить строку "set nomodeline". В дистрибутивах проблема устранена в RHEL (https://access.redhat.com/security/cve/cve-2019-12735), SUSE/openSUSE (https://bugzilla.novell.com/show_bug.cgi?id=CVE-2019-12735), Fedora (https://bugzilla.redhat.com/show_bug.cgi?id=1718315), FreeBSD (https://www.freshports.org/editors/vim/), Ubuntu (https://usn.ubuntu.com/4016-1/)  и Arch Linux (https://security.archlinux.org/CVE-2019-12735). Уязвимость остаётся неисправленной в  Debian (https://security-tracker.debian.org/tracker/CVE-2019-12735).

URL: https://nvd.nist.gov/vuln/detail/CVE-2019-12735
Новость: https://www.opennet.me/opennews/art.shtml?num=50857


Содержание

Сообщения в этом обсуждении
"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено zzz , 12-Июн-19 23:40 
Докатились, уже для текстовых редакторов начали писать эксплоиты. ee спасет мир.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 12-Июн-19 23:54 
С разморозкой. Ты просто remote code execution в Atom пропустил.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним Анонимович Анонимов , 13-Июн-19 00:15 
Менее двух недель назад windows сообщество обсуждало уязвимость notepad.exe.

https://www.securitylab.ru/news/499294.php
https://habr.com/ru/news/t/454118/


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Лапчатый девляпс бубунтёнак , 13-Июн-19 08:38 
> windows сообщество обсуждало

Так вот оно как называется большая часть аудитории опеннета...


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Ганделябры , 13-Июн-19 18:48 
Ещё раз повторяю, никакого windows сообщества не существует. Это как если бы было сообщество едящих ртом или слушающих ушами.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Лапчатый девляпс бубунтёнак , 14-Июн-19 09:42 
Тогда можешь повторить ещё раз...

Просто мне, как человеку, активно пользовавшемуся некрософт-вантузом где-то с 2003 по 2007 год, немножко странно читать твой бреад.


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 10:24 
> для текстовых редакторов начали писать эксплоиты

См. CVE-2002-1377, CVE-2004-1138, CVE-2007-2438, CVE-2016-1248…


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 12-Июн-19 23:56 
У меня vim - симлинк на nano. Я всё правильно сделал?

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено bergentroll , 13-Июн-19 06:04 
Это у вас симлинк на /dev/ass.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 12:31 
Не туда посмотрел. Это вместо /dev/head у него симлинк на /dev/ass.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено segesg , 13-Июн-19 00:32 
да

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 12:10 
Спасибо за идею.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено anon342532 , 13-Июн-19 12:18 
Фу таким быть! 😡

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено IRASoldier_registered , 13-Июн-19 15:41 
Зачем, если можно просто иcпользовать nano?

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Junior frontend developer , 15-Июн-19 01:18 
Если все равно через задницу работает, почему же не вим сразу? Кто эти люди, которым не впадлу изучать нано?

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Канделябры , 13-Июн-19 00:09 
Ну не знаю. Преподносить "фичи" редактора, который использовался в то время, когда ещё "стрелки" на клаве не придумали.. Вот в этом весь столлманизм, вся гнутость, я считаю. Цинизм дурака.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 00:54 
Это ты про емакс?

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 03:06 
А где срок годности редактора посмотреть?

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено RNZ , 13-Июн-19 00:15 
На 8.1.320 не воспроизводится
Вместо cat использую less

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Канделябры , 13-Июн-19 00:18 
Это на бобине? А на SSD?

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено RNZ , 13-Июн-19 03:39 
без разницы

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено anon342532 , 13-Июн-19 16:07 
> использую less

смотри v случайно не нажми)


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 16:12 
NVIM v0.3.1
Не воспроизвожу

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено InuYasha , 13-Июн-19 01:32 
Такова проблема всех "комбайнов". Что поделать.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 02:12 
пользую ed уже как лет 20

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Sw00p aka Jerom , 13-Июн-19 03:26 
mcedit) ну на крайняк ee

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Ананнимас , 13-Июн-19 09:25 
ее не дружит с ютф к сожалению

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Sw00p aka Jerom , 13-Июн-19 15:04 
> ее не дружит с ютф к сожалению

это беда бсд, даже mcedit не дружит


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Ананнимас , 14-Июн-19 12:30 
mcedit лне себе дружит. по-крайней мере с русскими буквами.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 14-Июн-19 07:47 
Нее... mceditor и ee слишком продвинуты.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено souryogurt , 13-Июн-19 02:41 
У большинства престарелых вимеров модлайн отключен в конфиге, по-моему?

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено KonstantinB , 13-Июн-19 03:59 
Я вроде еще не престарелый, но отключил вот.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 10:52 
Йеп, уже давно в vimrc, всегда считал странной функцией.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 12:10 
Ага, при установке (в "некоторых" дистрах) до поры до времени месссадж честно выводился, что "modeline штука специфическая и потенциально опасная, вы бы выключили её от греха подальше".

Так-то можно включить set exrc и уууух что начнётся. Но порой бывает удобно, да:(


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним84701 , 13-Июн-19 14:08 
> У большинства престарелых вимеров модлайн отключен в конфиге, по-моему?

Вот тут пишут, что оно массово отключено по умолчанию:
https://vim.fandom.com/wiki/Modeline_magic
> Debian, Ubuntu, Gentoo, OSX, etc. by default disable modelines for security reasons.
> To enable modelines, edit your vimrc file (for example, in Vim enter :e $MYVIMRC) and check you have lines like the following.

А вообще, нужно было сразу переходить на единственно верный и правильный  редактор (Emacs) и не страдать фигней!


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 04:51 
Великий Vim настолько могущественный, что даже может разрушать компьютер владельца. Не каждый текстовый редактор может похвастаться этим!

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено vimgovno , 13-Июн-19 17:13 
vim - это отменное говно, странно что им еще пользуются/

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 18:34 
Не каждый редактор может похвастаться таким количеством хейтеров. Vim и тут превосходен!

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено АнонимГоним , 14-Июн-19 16:37 
При этом бибикая в дьявольской тональности.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Пряникё , 13-Июн-19 06:25 
Каким нужно быть упоротым, чтобы использовать эту фичу...
(Я про опции редактирования внутри самого файла)

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено A.Stahl , 13-Июн-19 06:45 
От вимеров всякого можно ожидать...

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 09:22 
В Debian по умолчанию modeline отключён с 2007 года.

>  * debian/runtime/debian.vim.in
>    - set 'nomodeline' by default since modelines have historically been a
>      source of security/resource vulnerabilities.  Users should have to
>      explicitly enable the option to assume the associated risks.


"gentoo +"
Отправлено little Bobby tables , 13-Июн-19 10:35 
да и в генте:
/etc/vim/vimrc
" We don't allow modelines by default. See bug #14088 and bug #73715.
" basis by adding "set modeline" to your ~/.vimrc file.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено пох. , 19-Июн-19 17:05 
у _старых_ opensuse та же фигня:
" Changed default required by SuSE security team--be aware if enabling this
" that it potentially can open for malicious users to do harmful things.
set nomodeline

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


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 11:50 
Киип ит симпл, стьупид!

Напуркуя в текст. редакторе такие функции.

При религии головного мозга молчать в ответ!!!


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Nicknnn , 13-Июн-19 12:55 
Debian testing, приехали обновления vim

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено Аноним , 13-Июн-19 13:57 
Я обновился, потом новость прочитал.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено vjkarbo , 13-Июн-19 15:21 
FreeBSD:12:i386. В пакетах - vim-8.1.0985 (уязвим), в портах - 8.1.1439.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено анонн , 13-Июн-19 15:33 
> FreeBSD:12:i386. В пакетах - vim-8.1.0985 (уязвим), в портах - 8.1.1439.

Сделай уже pkg update
% pkg rquery %n-%v neovim vim
neovim-0.3.7
vim-8.1.1439
% uname -mrs
FreeBSD 12.0-STABLE amd64



"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено анонн , 13-Июн-19 15:37 
>> FreeBSD:12:i386.
> FreeBSD 12.0-STABLE amd64

http://pkg.freebsd.org/FreeBSD:12:i386/latest/All/vim-8.1.14...


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено vjkarbo , 13-Июн-19 15:54 
Странно. pkg update автоматом перед инсталлом же. Может с базой что.

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено vjkarbo , 13-Июн-19 16:07 
Да, и
% uname -r
12.0-RELEASE-p5

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено анонн , 13-Июн-19 16:37 
> Да, и
> % uname -r
> 12.0-RELEASE-p5

pkg -vv | grep url
"pkg+http://pkg.FreeBSD.org/FreeBSD:12:amd64/latest"

вангую, что в релизе репы квартальные (quarterly), а туда или еще не завезли или уже не завезут.


"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено vjkarbo , 13-Июн-19 16:51 
Да, вы правы ( "pkg+http://pkg.FreeBSD.org/FreeBSD:12:i386/quarterly"

"Уязвимость в Vim, приводящая к выполнению кода при открытии ..."
Отправлено burjui , 15-Июн-19 15:52 
Более позитивный заголовок: "Vim научился открывать вредоносные файлы".