すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:脆弱性 CVE-2025-23266 の修正

最終更新日:Aug 14, 2025

デフォルト構成で使用する場合、NVIDIA Container Toolkit バージョン 1.17.7 以前には、Time-of-check to Time-of-use(TOCTOU)競合状態の脆弱性が存在します。この脆弱性は、Container Device Interface(CDI)を使用するデプロイメントには影響しません。ただし、悪用された場合、この脆弱性によりコンテナエスケープが発生し、攻撃者がホスト上で任意のコマンドを実行したり、機密性の高いホストシステム情報にアクセスしたりする可能性があります。既知の攻撃シナリオでは、悪意のあるコンテナイメージを実行し、NVIDIA Container Toolkit を介してコンテナ内で GPU リソースを使用する必要があります。影響を受けるクラスターには、即時の修復が必要です。

公式の詳細については、「NVIDIA Container Toolkit」をご参照ください。

影響を受ける範囲

以下の両方の条件が満たされる場合、クラスターは影響を受けます。

  1. Kubernetes のバージョンが 1.32 以前である。

  2. 少なくとも 1 つの GPU アクセラレーションノードで、NVIDIA Container Toolkit バージョン 1.17.7 以前が実行されている。

NVIDIA Container Toolkit のバージョンの確認

  1. GPU アクセラレーションノードにログオンする

  2. nvidia-container-cli --version コマンドを実行します。

    出力例:

    cli-version: 1.17.8
    lib-version: 1.17.8
    build date: 2025-05-30T13:47+00:00
    build revision: 6eda4d76c8c5f8fc174e4abca83e513fb4dd63b0
    build compiler: x86_64-linux-gnu-gcc-7 7.5.0
    build platform: x86_64

予防策

ポリシーガバナンス機能コンテナセキュリティポリシールールを有効にして、イメージのプルを信頼できるイメージリポジトリのみに制限します。

解決策

新しい GPU アクセラレーションノード

ACK エッジクラスター(Kubernetes 1.20 以降)

  • 2025 年 8 月 4 日以降に作成されたノードには、NVIDIA Container Toolkit のパッチ適用済みバージョン(V1.17.8)が自動的にインストールされます。

  • それ以上の操作は必要ありません。

Kubernetes バージョンが 1.20 より前のクラスター

  • パッチ適用済みバージョンが確実に適用されるように、新しいノードを作成する前にクラスターをアップグレードする必要があります。

  • 手順については、「クラスターのアップグレード」をご参照ください。

既存の GPU アクセラレーションノード

2025 年 8 月 4 日より前に作成されたすべての既存の GPU アクセラレーションノードでは、手動による修正が必要です。

  • クラウドノードの場合は、「脆弱性 CVE-2025-23266」をご参照ください。

  • エッジノードの場合は、以下の手順に従います。

重要

システムの安定性を確保するために、修正プログラムはバッチで適用してください。

エッジノードの手動修正手順

手順 1:ノードをドレインする

ノードをドレインして、ワークロードを他の使用可能なノードに安全に移行します。開始する前に、正しいターゲットエッジノードを選択したことを確認してください。

  1. ノードをスケジューリング不可としてマークします。

    kubectl cordon <NODE_NAME>
  2. ノードをドレインします。

    kubectl drain <NODE_NAME> --grace-period=120 --ignore-daemonsets=true

手順 2:修正スクリプトを適用する

影響を受けるノードにログオンし、次のスクリプトを実行します。

  1. 必要な環境変数 REGIONINTERCONNECT_MODE を設定します。例の値を実際の構成に置き換えます。

    export REGION="cn-hangzhou"  INTERCONNECT_MODE="basic";  # "cn-hangzhou" と "basic" を実際の構成に置き換えます。// Replace "cn-hangzhou" and "basic" with your actual configurations.
    

    パラメータリファレンス:

    パラメータ

    説明

    REGION

    ACK Edge クラスターのリージョン ID。詳細については、「サポートされているリージョン」をご参照ください。

    cn-hangzhou

    INTERCONNECT_MODE

    ネットワークアクセスタイプ:

    • basic:インターネットアクセス。

    • private:専用線アクセス。

    basic

  2. 修正スクリプトを実行します。

    #!/bin/bash
    set -e
    
    if [[ $REGION == "" ]];then
        echo "Error: REGION is null"
        exit 1
    fi
    
    if [[ $INTERCONNECT_MODE == "" ]]; then
       echo "Error: INTERCONNECT_MODE is null"
       exit 1
    fi
    
    NV_TOOLKIT_VERSION=1.17.8
    
    INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" )
    PACKAGE=upgrade_nvidia-container-toolkit-${NV_TOOLKIT_VERSION}.tar.gz
    
    cd /tmp
    
    export PKG_URL_PREFIX="http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com"
    curl -o ${PACKAGE}  ${PKG_URL_PREFIX}/public/pkg/nvidia-container-runtime/${PACKAGE} 
    
    tar -xf ${PACKAGE} 
    
    cd pkg/nvidia-container-runtime/upgrade/common
    
    bash upgrade-nvidia-container-toolkit.sh
    
  3. 修正を確認します。

    • 次の出力が表示された場合、ノードは脆弱ではなく、変更は行われませんでした。

      2025-03-22/xxxx  INFO  No need to upgrade current nvidia-container-toolkit(1.17.8) // 現在の nvidia-container-toolkit(1.17.8) をアップグレードする必要はありません。
      
    • 次の出力が表示された場合、ノードは脆弱であり、パッチが適用されました。

      2025-03-22/xxxxx  INFO  succeed to upgrade nvidia container toolkit // nvidia container toolkit のアップグレードに成功しました。
      

手順 3:ノードを再度有効にする

ノードのスケジューリングステータスを復元します。

kubectl uncordon <NODE_NAME>

手順 4(オプション):ノードをテストする

修正を適用した後、GPU ワークロードをデプロイして、ノードが正しく機能していることを確認します。次のサンプル YAML テンプレートを使用します。