
Claude アシスタントのシンプルなプロンプトを使用して発見された、VimおよびGNU Emacsテキストエディタの脆弱性により、ファイルを開くだけでリモートコード実行が可能になります。
アシスタントは複数のプルーフオブコンセプト(PoC)エクスプロイトのバージョンを作成し、それらを洗練させ、セキュリティ上の問題に対処するための提案を行いました。
VimおよびGNU Emacsはプログラム可能なテキストエディタであり、主に開発者とシステム管理者がコード編集、ターミナルベースのワークフロー、スクリプト作成に使用しています。特にVimはDevOpsで広く使用されており、ほとんどのLinuxサーバーディストリビューション、組み込みシステム、macOSにデフォルトでインストールされています。
Vimの欠陥と修正
AI レッドティーミングとセキュリティエンジニアリングに特化するブティック型サイバーセキュリティ企業 Calif の研究者である Hung Nguyen は、ファイルを開くことでトリガーされるテキストエディタのリモートコード実行(RCE)ゼロデイ脆弱性を見つけるよう Claude に指示した後、Vim の問題を発見しました。
Claude アシスタントは Vim のソースコードを分析し、セキュリティチェックの欠落とモードライン処理の問題を特定しました。これにより、ファイルに組み込まれたコードが開封時に実行される可能性があります。
モードラインはファイルの先頭に配置されたテキストで、Vim がそれをどのように処理するかを指示します。
コードはサンドボックスで実行されることになっていたとしても、別の問題により制限をバイパスして、現在のユーザーのコンテキストでコマンドを実行することができました。
この脆弱性は CVE ID を受け取っておらず、Vim 9.2.0271 以前のすべてのバージョンに影響します。
Nguyen は Vim のメンテナーに問題を報告し、彼らは Vim バージョン 9.2.0272 でパッチをすぐにリリースしました。Vim チームは、被害者が脆弱性をトリガーするために特別に細工されたファイルを開くだけで済むと述べました。
「細工されたファイルを被害者に配信できる攻撃者は、Vim を実行しているユーザーの権限で任意のコマンド実行を達成します」とセキュリティ勧告に記載されています。
GNU Emacs が Git を指摘
GNU Emacs の場合、開発者はそれを対処する Git の責任と考えているため、脆弱性は依然として存在しています。
この問題は GNU Emacs のバージョン管理統合(vc-git)に由来しており、ファイルを開くと vc-refresh-state 経由で Git 操作がトリガーされ、Git に .git/config ファイルを読み取らせ、ユーザー定義の core.fsmonitor プログラムを実行させます。これは任意のコマンドを実行するために悪用される可能性があります。
研究者が考案した攻撃シナリオでは、実行可能スクリプトを指す設定ファイルを含む非表示の .git/ ディレクトリを含むアーカイブ(電子メールまたは共有ドライブなど)を作成することが含まれます。
被害者がアーカイブを抽出してテキストファイルを開くと、ペイロードは GNU Emacs のデフォルト設定上での見える指標なしに実行されます。
GNU Emacs のメンテナーは、環境は Git によって実行される危険なアクション(攻撃者が制御する設定を読み取り、そこからプログラムを実行する)のトリガーに過ぎないため、これをテキストエディタではなく Git の問題と考えています。
この主張は技術的には正しいですが、GNU Emacs では何も直接実行されていないため、エディタは信頼できないディレクトリで Git を自動的に実行し、危険なオプションを中和せず、ユーザーの同意またはサンドボックス保護を要求していないため、ユーザーに対するリスクが存在します。
Nguyen は GNU Emacs が Git コールを変更して ‘core.fsmonitor’ を明示的にブロックできることを提案しました。これにより、危険なスクリプト/ペイロードはファイルを開くときに自動的に実行されません。
GNU Emacs の最新バージョンではフローがパッチされていないままであるため、ユーザーは不明なソースからダウンロードされたファイルを開く際に注意を払うことをお勧めします。