本文へ移動
English version →
重大 9.2 急ぎ度: 早めに

Docker DesktopのWSL2版で隔離を回避、修正版あり

Windows版Docker DesktopのWSL2環境で、コンテナからWindows側のファイルに届いてしまう脆弱性が公表されました。Docker Desktop 4.98.0以降とWSL 3.0.3以降の両方へ、開発機を更新してください。

CVE-2026-112917 公開 更新 執筆・監修: 佐々木 航 人が監修しながらAIを活用して執筆
画像は生成 AI で作成したイメージです

急ぎ度: 早めに

CVSS v4は9.2で修正版も出ていますが、直るのはDocker DesktopとWSLの両方を更新した場合だけで、片方では残ります。

関係があるか

Windows上のDocker DesktopでWSL2バックエンドを使い、x86-64のパソコンでコンテナを動かしている開発者の端末や検証用の端末が対象です。LinuxKitベースのバックエンドは影響を受けません。

製品影響を受ける版修正版
Docker Desktop for Windows(WSL2バックエンド、x86-64) 4.98.0より前。4.98.0以降でも、WSLが3.0.3より前なら影響が残ります Docker Desktop 4.98.0以降、かつWSL 3.0.3以降

確かめ方

  1. 1Docker Desktopの設定で、WSL 2 based engineを使っているかを確認します。使っていなければ対象外です。
  2. 2docker versionか、Docker Desktopの画面から版を確認します。4.98.0より前なら更新が必要です。
  3. 3PowerShellでwsl --versionを実行し、WSLの版を確認します。3.0.3より前なら、Docker Desktopが新しくても影響が残ります。
  4. 4社内に配布している端末の台帳や資産管理ツールで、Docker Desktopが入っている端末を洗い出します。

何が起きたか

Windows版Docker DesktopのWSL2バックエンドに、コンテナの隔離をすり抜けられる脆弱性が見つかりました。権限を持たない通常のコンテナからでも、ホスト向けのサービスや、ログイン中のWindowsユーザーが読めるファイルに届いてしまいます。

コンテナには、使える呼び出しを絞るseccompの既定設定があります。この設定はAF_VSOCKという、仮想マシンとホストの間の通信に使うソケットを制限しています。ところが32ビット用のsocketcallという呼び出しを経由すると、この制限が効きません。

影響するのはx86-64のWSL2です。修正には、Docker Desktop側とWSL側の両方の更新が必要です。Docker Desktop 4.98.0以降でも古いWSLで動かしていれば、脆弱性は残ります。

攻撃の流れ

  1. 1

    コンテナで実行

    権限を持たない通常のコンテナの中で、処理を動かせる状態から始まります。

  2. 2

    既定の制限を回避

    32ビット用の呼び出し経路を通ると、AF_VSOCKに対するseccompの制限が働きません。

  3. 3

    ホスト側に到達

    仮想マシンとホストの間の通信口に、コンテナから届くようになります。

  4. 4

    情報が露出

    ホスト向けのサービスと、ログイン中のユーザーが読めるWindowsのファイルが露出します。

公開されている情報をもとにした流れの例です。

どう悪用されるか

CVSS v4のベクターでは、攻撃元の区分はローカル、必要な権限は低、利用者の操作は不要です。つまり、攻撃する側が対象の端末でコンテナを動かせることが前提になります。外部から直接狙われる種類の脆弱性ではありません。

悪用されると、コンテナの外にあるはずのホスト向けサービスと、ログイン中のWindowsユーザーが触れるファイルが露出します。CVSS v4では機密性と完全性の影響がどちらも高く評価されており、読み取られるだけでなく書き換えられる懸念もあります。開発者が出所の不明なイメージや、第三者が用意したコンテナを動かす環境ほど、この前提は現実的になります。

今すぐやること

  1. 1

    対象の端末を洗い出す

    WSL2バックエンドでDocker Desktopを使っている端末を、台帳や資産管理ツールから一覧にします。端末ごとにDocker DesktopとWSLの版も控えておきます。

    wsl --version
  2. 2

    Docker Desktopを更新する

    4.98.0以降の修正版に更新します。配布方法や更新の可否は、ベンダーのリリースノートも確認して社内の手順に合わせます。

    docker version
  3. 3

    WSLも3.0.3以降にする

    Docker Desktopだけを更新しても、WSLが古ければ影響が残ります。WSL側の更新手順と修正内容は、MicrosoftのWSLのリリース情報で確認してください。

  4. 4

    更新後に版を再確認する

    Docker Desktopが4.98.0以降、WSLが3.0.3以降になっていることを端末ごとに確かめ、更新が終わっていない端末を洗い出します。

    wsl --version
  5. 5

    更新が遅れた端末の使われ方を聞く

    更新前の端末で、出所の不明なイメージを動かしていないかを利用者に聞き取ります。心当たりがあれば、そのユーザーのWindows上のファイルに不審な変更がないかを調べます。

すぐ更新できないとき

すぐに更新できない端末では、出所の不明なイメージや第三者が用意したコンテナを動かさないでください。ベンダーの告知に回避策が書かれていないかも、あわせて確認してください。

背景

Windows版Docker Desktopは、WSL2上のLinux環境でコンテナを動かします。開発者のパソコンでは、外部から取得したイメージをそのまま動かす場面が多く、コンテナがWindows側と分けられていることが安全の前提です。seccompは、その分離を支える既定の仕組みで、コンテナが使える呼び出しを絞っています。

今回の脆弱性では、AF_VSOCKを止めるはずの規則が、32ビット用の呼び出し経路では効きませんでした。AF_VSOCKは、仮想マシンとホストが通信するためのソケットです。64ビット向けに書いた制限が32ビット互換の入口では効かないことがある、というのは、seccompを使う環境で以前から知られた注意点です。

よくある質問

Q.Linuxサーバー上のDockerやMac版のDocker Desktopも対象ですか。
A.今回の説明で対象とされているのは、Windows版Docker DesktopのWSL2バックエンドで、x86-64のWSL2です。LinuxKitベースのバックエンドは影響を受けないとされています。ほかの環境の扱いはベンダーの告知で確認してください。

この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。

原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

In Docker Desktop for Windows with the WSL2 backend, an unprivileged Linux container can use 32-bit socketcall to bypass the default seccomp restriction on AF_VSOCK. This can expose host-facing services and Windows files accessible to the logged-in user. The issue affects x86-64 WSL2; LinuxKit-based backends are unaffected. The issue is fully fixed only with Docker Desktop 4.98.0 or later and WSL 3.0.3 or later. Docker Desktop 4.98.0 or later running on an older WSL remains affected.

出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく