30秒で判断
対応すべき人:
- KubeVirtを使用していて
spec.configuration.migrations.disableTLS: trueを設定している - KubeVirtクラスターでテナント分離が重要な環境
対応不要な人:
- KubeVirtを使用していない
disableTLSを設定していない(デフォルトはTLS有効)- シングルテナント環境でクラスター内のすべてのPodが信頼できる
確認コマンド:
# disableTLS設定の確認
kubectl get kubevirt -n kubevirt -o jsonpath='{.spec.configuration.migrations.disableTLS}'
概要
KubeVirtのspec.configuration.migrations.disableTLSをtrueに設定すると、ライブマイグレーション時にvirt-handlerがすべてのネットワークインターフェース(0.0.0.0/::)のランダムなポートで、認証・ピアホワイトリスト・ハンドシェイクトークンなしでTCPリスナーをバインドします。
このリスナーはマイグレーション先のvirt-launcherのlibvirt制御ソケット(virtqemud)に直接プロキシします。クラスターネットワーク上で動作する任意のPodからこのポートに接続し、フィルタリングされていないlibvirt RPCコマンドを別テナントのVMに対して送信できます。
攻撃が成功した場合、他テナントのVMのメモリや設定の読み取り、QMP経由でのVM状態変更、VMの破壊などが可能になります。
migrations.networkで専用マイグレーションネットワークを設定しても、リスナーのバインドアドレスは変わらず0.0.0.0のままとなるため、対策にはなりません。
CVSSベクトル
| 項目 | 値 |
|---|---|
| スコア | 8.5 |
| 深刻度 | High |
| CWE | CWE-306(認証機能の欠如) |
| 攻撃元区分 | ネットワーク (AV:N) |
| 攻撃条件の複雑さ | 低 (AC:L) |
| 必要な特権レベル | 低 (PR:L) ※クラスターにPodを起動できる権限 |
| ユーザー関与 | 不要 (UI:N) |
| スコープ | 変更あり (S:C) |
| 機密性への影響 | 高 (C:H) |
| 完全性への影響 | 高 (I:H) |
| 可用性への影響 | 高 (A:H) |
影響を受けるソフトウェア
| 製品 | 影響する条件 |
|---|---|
| KubeVirt | spec.configuration.migrations.disableTLS: trueを設定している場合 |
修正バージョンと回避策
回避策(即時):
disableTLS: true設定を削除し、TLSを有効に戻す- NetworkPolicyでマイグレーションポート(ランダムポート)へのアクセスを制限する(完全な防御にはならないが軽減策として有効)
パッチ適用:
- KubeVirtの最新バージョンへのアップデートを確認してください
関連リンク
データソース: NVD (NIST), Red Hat Security
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
