30秒で判断
対応すべき人:
- Vim 9.2.0276未満を使用している
- 信頼できないソースからファイルを受け取ることがある(コードレビュー、メール添付、ダウンロード等)
- モードライン(
:set modeline)が有効になっている
対応不要な人:
- Vim 9.2.0276以降を使用している
- Neovimのみ使用している(別のコードベース、影響範囲は異なる)
- モードラインを無効化している(
set nomodeline)
確認コマンド:
# バージョン確認
vim --version | head -1
# モードライン設定確認
vim -e -c 'set modeline?' -c 'quit'
概要
Vim 9.2.0276未満に、モードラインのサンドボックスを回避して任意のOSコマンドを実行できる脆弱性が存在します(CWE-78)。
問題の詳細:
complete、guitabtooltip、printheaderの3つのオプションに、サンドボックス化が必要であることを示すP_MLEフラグが欠落しているmapset()関数がサンドボックス制限を確認するcheck_secure()を呼び出していないため、サンドボックス化された式から安全でない操作が実行できる
これらの欠陥を組み合わせることで、細工されたVimファイルをVimで開くだけで、モードライン経由でOSコマンドが実行されます。ターミナル経由での攻撃、メール添付ファイル、リポジトリ内の悪意あるファイル等が攻撃ベクターになります。
CVSSベクトル
| 項目 | 値 |
|---|---|
| スコア | 8.2 |
| 深刻度 | High |
| CWE | CWE-78(OSコマンドインジェクション) |
| 攻撃元区分 | ローカル (AV:L) |
| 攻撃条件の複雑さ | 低 (AC:L) |
| 必要な特権レベル | 不要 (PR:N) |
| ユーザー関与 | 必要 (UI:R) ※ファイルを開く操作 |
| 機密性への影響 | 高 (C:H) |
| 完全性への影響 | 高 (I:H) |
| 可用性への影響 | 高 (A:H) |
影響を受けるソフトウェア
| 製品 | 影響バージョン | 修正バージョン |
|---|---|---|
| Vim | 9.2.0276未満 | 9.2.0276以降 |
修正バージョンと回避策
推奨対応: Vim 9.2.0276以降へアップデート
# ディストリビューション経由の更新
sudo apt update && sudo apt upgrade vim # Debian/Ubuntu
sudo dnf update vim # RHEL/Fedora
# ソースからビルドする場合
# https://github.com/vim/vim/releases/tag/v9.2.0276
暫定的な回避策: ~/.vimrcにモードラインを無効化する設定を追加
set nomodeline
関連リンク
データソース: NVD (NIST), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
