ニュース

Docker Sandboxesの重大な脆弱性:サンドボックス脱出とホスト侵害の仕組み

Docker公式がDocker Sandboxesの2件の重大な脆弱性を公表した。信頼できないゲストワークロードが分離されたmicroVM環境を抜け出し、ホスト側のリソースへ読み取り・書き込みができる内容で、2026年9月7日にリリースされたDocker Sandboxes…

Docker Sandboxesの重大な脆弱性:サンドボックス脱出とホスト侵害の仕組み

Docker Sandboxesに2件の重大脆弱性 — サンドボックス境界からの脱出が可能に

Docker公式がDocker Sandboxesの2件の重大な脆弱性を公表した。信頼できないゲストワークロードが分離されたmicroVM環境を抜け出し、ホスト側のリソースへ読み取り・書き込みができる内容で、2026年9月7日にリリースされたDocker Sandboxes 0.42.0で修正済みである。LaravelやWordPressのローカル開発でAIエージェント由来のコード実行を許可する構成が増えたことで、個人開発環境にとっても実害の射程に入った案件である。

脆弱性の構造と影響範囲

CVE-2026-77179はCritical評価で、Docker Sandboxes 0.28.0から0.42.0未満のmacOS版に影響する。問題箇所はvirtio-fsホストサーバのファイル再オープン処理にある。サンドボックスは初回に承認されたパスを基に、後続のファイル操作でも同じディレクトリオブジェクト内に操作を限定する設計を採る。しかしvirtio-fsの実装は、削除済みファイルを「以前保存されたパス」から再オープンする際にシンボリックリンクを追従する。ゲストは、ホスト側が再オープンを行うまでの短いウィンドウで親ディレクトリをシンボリックリンクへ差し替えることで、後続の操作を共有ワークスペースの外へリダイレクトできる。結果として、VMMユーザー権限でのホスト上任意ファイルの読み取り・書き込みが成立する。任意の書き込みは最終的にmacOSホスト側でのコード実行への経路になり得るため、影響はサンドボックス脱出の枠を超えてホストそのものの侵害に波及する。

CVE-2026-79994はHigh評価で、Docker Sandboxes 0.37.0から0.42.0未満に影響する。guest-to-hostのUnix domain socket relayにおける接続処理に同種のTOCTOUが含まれる。Docker Sandboxesは、要求されたソケットパスが承認済みワークスペース内に位置するかを最初に検証し、その後で実際の接続を確立する。しかし接続時にはパス文字列をそのまま使い、検証時に確保した参照を保持しない。ゲストは検証と接続の間の隙間で中間ディレクトリをシンボリックリンクへ差し替えられる。結果としてワークスペース外の任意のAF_UNIXソケットへの接続が成立する。Unixソケットはネットワーク経由の公開サービスと異なり、ローカルのprivilegedなIPC、開発ツール、プラットフォームサービス間の通信を担うため、漏洩時の攻撃対象面は広く、ホスト側機能の意図しない呼び出しに及び得る。

両CVEの構造は、認可と実アクセスの間でパス文字列が再評価されず、ファイルディスクリプタではなくパス名を使って接続を再構築する設計が共通の弱点となっている。サンドボックスのセキュリティモデルは、初回承認時のディレクトリオブジェクトと後続のすべてのファイル操作が同一の境界内に拘束されることに依存しているが、攻撃者はその境界をパス文字列側で迂回する。virtio-fsの再オープンとUnixソケットの接続は、いずれもパスを起点に新しいI/Oチャネルを開く操作であり、ここに変異可能な文字列を渡し続ける構造が致命になっている。

開発環境で取るべき対応

  • Docker Sandboxesを実行する全ホストのバージョンを確認し、0.42.0未満であれば0.42.0以上へ直ちに更新する。追加のセキュリティ強化を含む0.43.0が利用可能であればそちらを優先する
  • macOSで信頼できないリポジトリ、サードパーティ製ツール、自律型AIワークロードを実行している環境は最優先で対処対象とする
  • 即時アップグレードが困難な場合は、Dockerの推奨に従いクローンモードへ切り替え、ホストへの読み書きマウントを可能な限り使用しない
  • docker composeやDockerfileレベルでマウントポイントの棚卸しを行い、ホスト側ディレクトリの公開を必要最小限に絞り込む
  • CVE-2026-17106(docker container cp、Desktop 4.86.0で修正)など同年のDocker系修正と併せて、ローカル環境のコンテナ・microVM系の更新履歴を横断的に確認する
  • AIエージェント由来のコード実行を許可する開発フローは、ワークスペースの分離単位と実行ユーザーの権限境界を併せて監査する
  • 共有ワークスペース内のファイル数が多いほどシンボリックリンク差し替えの余地が広がる。巨大リポジトリをマウントする運用は見直す

設計側の論点

パス文字列の検証を一度きりのセキュリティ境界とみなす設計は、TOCTOUへの耐性を欠く。virtio-fsのようなファイル共有チャネルにおいても、Unixソケットのような名前空間ベースのチャネルにおいても、認可時にはファイルディスクリプタ相当の不変ハンドルへバインドし、以降はそのハンドル越しの操作に限定する実装が望まれる。今回の脆弱性は、サンドボックス内部の防御というより、ホスト側I/O境界の設計に課題が集中していた点で、個人開発レベルで再現性のある教訓を残している。クローンモードはホストワークスペースをコピーしてゲストに渡す方式で、元のワークスペースへのシンボリックリンク差し替えを構造的に無効化できる。read-writeマウントを避ければ、書き込みベクトルそのものが消える。残るのは接続時のハンドル固定のみで、設計側で確保すべき範囲は限定的である。0.43.0で追加されたセキュリティ強化がどの層を覆うかは、Docker公式のリリースノートでの確認が必要である。

関連記事: ComposerとPHPの脆弱性:開発環境のセキュリティ対策を再点検する.

ニュースをもっと見る