Docker Engine の特定のバージョンには、特定の状況下で攻撃者が認証プラグイン (AuthZ) をバイパスできるセキュリティの脆弱性があります。これが悪用される基本的な可能性は低いです。 このアドバイザリでは、問題の概要を説明し、影響を受けるバージョンを特定し、影響を受けるユーザーの修復手順を提供します。
問題
Docker のデフォルトの認証モデルは、オール・オア・ナッシングです。 Docker デーモンにアクセスできるユーザーは、任意の Docker コマンドを実行できます。 アクセス制御を強化するために、認証プラグイン (AuthZ) を使用できます。 これらのプラグインは、認証とコマンドのコンテキストに基づいて Docker デーモンへのリクエストを承認または拒否します。
2018で、攻撃者が特別に細工された API リクエストを使用して AuthZ プラグインをバイパスできるセキュリティの問題が発見されました。これにより、権限昇格などの不正なアクションが発生する可能性があります。 この問題は 2019年 1 月の Docker Engine v18.09.1 で修正されましたが、修正は後のバージョンに繰り越されなかったため、リグレッションが発生しました。
脆弱性の詳細
- AuthZ バイパスと特権昇格: 攻撃者は、Content-Length を 0に設定した API リクエストを使用してバイパスを悪用し、Docker デーモンが本文なしでリクエストを AuthZ プラグインに転送し、デフォルトで拒否に設定されていない場合、リクエストを誤って承認する可能性があります。
- 初期修正: この問題は、Docker Engine v18.09.1 で修正されました。 1月 2019日
- 回帰: この修正プログラムは、Docker Engine v19には含まれていませんでした。03 以降のバージョン。 これは 2024 年 4 月に特定され、影響を受けるバージョンのパッチは 2024年 7 月 23日にリリースされました。この問題には CVE-2024-41110が割り当てられました。
影響を受けるバージョン
影響を受けるバージョン | パッチが適用されたバージョン |
---|---|
<= v19.03。15、 <= v20.10。27、 <= v23.0。14、 <= v24.0。9、 <= v25.0。5、 <= v26.0。2、 <= v26.1。4、 <= v27.0。3、 <= v27.1。0 | >対23。0。14、 >26。1。4、 >対27。1。0 |
影響を受けるのは誰ですか?
- Docker Engine v19のユーザー03.x 以降の バージョンで、アクセス制御の決定を認証プラグインに依存しているユーザー。
影響を受けないのは誰ですか?
- Docker Engine v19のユーザーアクセス制御の決定を認証プラグインに依存せず、Mirantis Container Runtime のすべてのバージョンのユーザーが03.x 以降のバージョンで脆弱ではありません。
- AuthZ プラグインに依存しないDocker 商用製品および内部インフラストラクチャのユーザーは影響を受けません。
Docker Desktop への影響
- Dockerデスクトップ最大v4。32。0 影響を受けるバージョンの Docker エンジンが含まれています。
- Docker Desktop への影響は、本番環境と比較して限定的です。
- エクスプロイトにはDocker APIへのアクセスが必要であり、これは通常、DockerデーモンがTCP経由で安全でない状態で公開されていない限り、攻撃者はホストマシンへのローカルアクセスをすでに持っている必要があることを意味します。
- デフォルトの Docker Desktop 設定には AuthZ プラグインは含まれていません。
- 権限昇格は、基盤となるホストではなく、Docker Desktop VM に限定されます。
- パッチが適用されたバージョンの Docker Engine は、Docker Desktop の 4.33に含まれています。
修復手順
- Docker エンジンを更新します。
- 影響を受けるバージョンを実行している場合は、最新のパッチ適用済みバージョンに更新します。
- すぐに更新できない場合の軽減策:
- AuthZ プラグインの使用は避けてください。
- Docker API へのアクセスを、最小特権の原則に従って、信頼できるパーティに制限します。
- Docker Desktop を更新します。
- 影響を受けるバージョンを使用している場合は、Docker Desktop 4. .33 に更新してください。
- AuthZ プラグインが使用されていないことを確認し、保護なしで Docker API を TCP 経由で公開しないようにします。
- Docker Business のサブスクライバーは、 設定管理 を使用して安全な設定を適用できます。
さらに詳しく
- GitHub のセキュリティ アドバイザリを参照してください。
- 認証と更新を行うと 、サブスクリプション レベルの最新の Docker Desktop 機能を利用できます。
- Docker は初めてですか? アカウントを作成します。
- Docker Newsletter を購読してください。