04/07/2023にmobyの脆弱性(High: CVE-2023-28840, Moderate: CVE-2023-28841, CVE-2023-28842)が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。
[過去関連リンク(最新5件)]
CVSS/プライオリティ
- CVE-2023-28840
- 影響するバージョン
- >= 1.12
- 一時情報源
- Priority
- Vendor: 7.5 High
- CVSS Score / CVSS Vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:L
- 影響するバージョン
- CVE-2023-28841
- 影響するバージョン
- >= 1.12
- 一時情報源
- Priority
- Vendor: 6.8 Moderate
- CVSS Score / CVSS Vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
- 影響するバージョン
- CVE-2023-28842
- 影響するバージョン
- >= 1.12
- 一時情報源
- Priority
- Red Hat: 6.8 Moderate
- CVSS Score / CVSS Vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N
- 影響するバージョン
修正方法
各ディストリビューションの情報を確認してください。
前提
- Mobyは、Docker Inc. によって開発されたOSSのコンテナフレームワークであり、Docker、Mirantis Container Runtime、およびその他のさまざまなプロジェクト/製品として配布されています。moby/moby として開発された Mobyデーモン (`dockerd`) は、一般に *Docker* と呼ばれます。
- Swarm Modeはdockerdでコンパイルされ、ほとんどの主要なMobyダウンストリームにデフォルトで存在します。これは、SwarmKitとネットワークコードの組み合わせによって実装された、シンプルな組み込みのコンテナオーケストレーターです。
- Overlay Network Driverは Swarm Modeのコア機能であり、クラスター全体のコンテナとサービス間の通信を可能にする仮想LANを提供します。このドライバーは、VXLAN の実装であり、発信元のOverlay Networkを識別するVXLAN Network ID(VNI)でUDPデータグラム内のリンク層 (イーサネット) フレームをカプセル化します。さらに、Oeverlay Network Driverは、オプションで暗号化モードをサポートします。これは、VXLANパケットがノード間の信頼されていないネットワークを通る場合に役立ちます。
- 暗号化されたOverlay Networkは、トランスポートモードで IPsecを使用してVXLANデータグラムをカプセル化します。 IPSecカプセル化を展開することにより、暗号化されたOverlay Networkは、暗号証明による発信元認証、チェックサムによるデータの完全性、暗号化による機密性という特性を取得します。
- 暗号化されたOverlay Network上にエンドポイントをセットアップする場合、Mobyは、着信IPSec と発信IPSecの両方を強制する3つの iptablesルールをインストールします。これらのルールは、xt_u32 カーネルモジュールによって提供されるu32 iptables拡張機能に依存して、VXLAN パケットのVNI フィールドを直接フィルタリングするため、他のOverlay NetworkやVXLANに干渉することなく、暗号化されたOverlay NetworkにIPSecを適用できます。
CVE概要
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-28840
- 暗号化されたOverlay Networkが認証されていない可能性
- 2つのiptablesルールは、暗号化されたネットワークに対応し、暗号化されていないデータグラムを破棄するVNIを使用して着信VXLANデータグラムをフィルタリングするために使用されます。ルールはINPUT フィルターチェーンの末尾に追加されます。管理者が設定したルールは、暗号化されていない VXLAN データグラムを破棄するために Moby が設定したルールよりも優先されます。
- Red Hat Enterprise LinuxやCentOS, Rockyなどではxt_u32モジュールが下記の様になっています;これらのルールはコンテナがネットワークにアタッチされていたとしても、xt_u32が使用不可能な際には作られません。
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-28841
- 暗号化されたOverlay Networkが暗号化されていない可能性
- このiptablesルールは、IPsec カプセル化のための暗号化されたOverlay Networkに対応する VNI を持つ発信VXLANデータグラムを指定します。
- Red Hat Enterprise LinuxやCentOS, Rockyなどではxt_u32モジュールが下記の様になっています;これらのルールはコンテナがネットワークにアタッチされていたとしても、xt_u32が使用不可能な際には作られません。
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-28842
- 暗号化されたOverlay Nwtorkトラフィックが暗号化されていない可能性
- Overlay Driverは、コンテナが接続および分離されるときに、各ノードのVXLAN ネットワークのカーネル構成を動的かつ遅延的に定義します。Routeと暗号化パラメーターは、ネットワークに参加する宛先ノードに対してのみ定義されます。暗号化されたOverlay Networkが暗号化されていないパケットを受け入れるのを防ぐiptables ルールは、通信相手のピアが利用可能になるまで作成されません。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
- Red Hat Enterprise Linux/CentOS
- Ubuntu
- SUSE/openSUSE
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。