悪意のあるファイルを開くとコードが実行される Vim の脆弱性

テキストエディタの場合 活力 и ネオビム 見つかった 脆弱性 (CVE-2019-12735)、特別に設計されたファイルを開いたときに任意のコードが実行される可能性があります。 この問題は、処理されたファイルに編集オプションを定義できるデフォルトのモードライン モード (「:set modeline」) がアクティブな場合に発生します。 リリースで修正された脆弱性
ヴィム 8.1.1365 и ネオビム 0.3.6.

モードライン経由でインストールできるオプションの数は限られています。 式がオプション値として指定されている場合、式はサンドボックス モードで実行され、最も単純な安全な操作のみが許可されます。 この場合、有効なコマンドには「!」修飾子を使用できる「:source」コマンドが含まれます。 指定したファイルから任意のコマンドを実行します。 したがって、コードを実行するには、モードライン行で「setfoldexpr=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=”

会社「ソース!」 %" は現在のファイルからコマンドを読み取り、それに応じて ":!uname -a" を実行します。 エスケープ シーケンスを使用すると、cat ユーティリティによる出力から特定の行を非表示にすることができます。 たとえば、これでは エクスプロイトプロトタイプ vim でファイルを開くと、被害者のシステムへのシェル アクセスを使用してネットワーク接続が作成されますが、このファイルは cat ユーティリティを使用して端末に出力されるときに疑わしいことはありません。

モードラインモードの動作はコマンド「:set modeline?」で確認できます。 これを無効にするには、「set nomodeline」という行を vimrc に追加します。 ディストリビューションでは問題は次のように修正されます。 RHEL, SUSE/openSUSE, フェドーラ, FreeBSDの, Ubuntu, アーチのLinux и 頭の中。 脆弱性はパッチされていないままです Debianの (Debian では、モードラインはデフォルトで無効になっているため、デフォルトの状態では脆弱性は表示されません)。

出所: オープンネット.ru

コメントを追加します