Ubuntu 18.04 LTS / 20.04 LTS / 22.04 LTS : containerd の脆弱性(USN-5776-1)

high Nessus プラグイン ID 168653

概要

リモート Ubuntu ホストに 1 つ以上のセキュリティ更新がありません。

説明

リモートの Ubuntu 18.04LTS / 20.04LTS / 22.04LTS / 22.10ホストには、USN-5776-1 のアドバイザリに記載された複数の脆弱性の影響を受けるパッケージがインストールされています。

- containerd は、オープンソースのコンテナランタイムです。ユーザーがホストでメモリを使い果たす可能性がある containerd の CRI 実装にバグが見つかりました。CRI ストリームサーバーでは、TTY がリクエストされた場合、ターミナルサイズ変更イベントを処理するために goroutine が起動されます。欠陥のあるコマンドなどのためにユーザーのプロセスが起動に失敗した場合、goroutine がレシーバーなしで送信するための待機でスタックし、メモリリークが発生します。
Kubernetes と crictl はどちらも、containerd の CRI 実装を使用するように構成でき、ストリームサーバーはコンテナ IO 処理のために使用されます。このバグは、containerd 1.6.12 および 1.5.16 で修正されました。この問題を解決するには、ユーザーがこれらのバージョンに更新する必要があります。アップグレードできないユーザーは、信頼できるイメージとコマンドのみが使用され、信頼できるユーザーのみが実行中のコンテナでコマンドを実行する権限を持つようにする必要があります。(CVE-2022-23471)

- Moby は、ソフトウェアのコンテナ化を可能にし、加速させるするために Docker によって作成されたオープンソースプロジェクトです。バージョン 20.10.14より前の Moby (Docker Engine) にバグが見つかりました。コンテナは空でない継承可能な Linux プロセス機能で不適切に起動され、非定型の Linux 環境を作成し、「execve (2) 」中に継承可能なファイル機能を持つプログラムを、これらの機能を許可された設定に引き上げてしまうことが可能でした。通常、実行可能プログラムが許可されたファイル機能を指定している場合、他の点では権限のないユーザーやプロセスがそれらのプログラムを実行し、指定されたファイル機能を境界設定まで取得する可能性があります。このバグにより、継承可能なファイル機能を持つ実行可能プログラムが含まれるコンテナにより、権限のないユーザーやプロセスが、コンテナの境界セットまでこれらの継承可能なファイル機能をさらに利用できるようになりました。Linux ユーザーおよびグループを使用してコンテナ内で権限分離を実行するコンテナが、最も直接的な影響を受けます。継承可能な設定には、コンテナの境界設定に含まれるよりも多くの機能は含まれていないため、このバグはコンテナセキュリティサンドボックスに影響を与えませんでした。このバグは、Moby (Docker Engine) 20.10.14で修正されています。継承可能な機能をリセットするには、実行中のコンテナを停止、削除、再作成する必要があります。この修正により、コンテナがより一般的な Linux 環境で起動されるような Moby (Docker Engine) の動作が変更されます。回避策として、コンテナのエントリポイントを変更して「capsh (1) 」などのユーティリティを使用し、プライマリプロセスが開始する前に継承可能な機能をドロップすることができます。(CVE-2022-24769)

- imgcrypt ライブラリは、暗号化されたコンテナイメージをサポートするために containerd に API 拡張を提供し、containerd が暗号化されたコンテナイメージを復号化するために使用する ctd-decoder コマンドラインツールを実装します。
imgcrypt 関数「CheckAuthorization」は、現在使用されているものが暗号化された画像にアクセスする権限があるかどうかをチェックし、別のユーザーが以前に同じシステムで復号化した画像を実行するのを防ぎます。1.1.4 より前のバージョンでは、ManifestList のあるイメージが使用され、ローカルホストのアーキテクチャが ManifestList の最初のアーキテクチャでない場合、エラーが発生します。リストの最初のアーキテクチャのみがテストされました。ホストアーキテクチャで実行できないため、ローカルで利用可能なレイヤーがない可能性があります。したがって、利用できないレイヤーの判定は、レイヤーが利用できないために後で画像実行の失敗が発生すると予想して、イメージを実行できることでした。
ただし、イメージの実行を許可するこの判定により、そのイメージが以前に復号化されていた場合、キーを提供せずに ManifestList の他のアーキテクチャがイメージを実行できるようになりました。imgcrypt 1.1.4 にパッチが適用されました。回避策には、各リモートユーザーの異なる名前空間の使用が含まれることがあります。
(CVE-2022-24778)

- containerd は、オープンソースのコンテナランタイムです。containerd の CRI 実装にバグが見つかりました。コンテナ内部のプログラムにより、「ExecSync」API の呼び出し中に、containerd デーモンがメモリを消費する可能性があります。これにより、containerdがコンピューターで利用可能なすべてのメモリを消費し、他の正当なワークロードに対するサービスを拒否する可能性があります。Kubernetes と crictl はどちらも、containerd の CRI 実装を使用するように構成できます。「ExecSync」は、プローブを実行するとき、または exec 機能を介してプロセスを実行するときに使用される可能性があります。このバグは、containerd 1.6.6および1.5.13で修正されました。この問題を解決するには、ユーザーがこれらのバージョンに更新する必要があります。アップグレードできないユーザーは、信頼できるイメージとコマンドのみが使用されるようにする必要があります。(CVE-2022-31030)

Nessus はこれらの問題をテストしておらず、代わりにアプリケーションの自己報告されたバージョン番号にのみ依存しています。

ソリューション

影響を受ける containerd および/またはgolang-github-containerd-containerd-devパッケージを更新してください。

参考資料

https://ubuntu.com/security/notices/USN-5776-1

プラグインの詳細

深刻度: High

ID: 168653

ファイル名: ubuntu_USN-5776-1.nasl

バージョン: 1.5

タイプ: local

エージェント: unix

公開日: 2022/12/13

更新日: 2023/10/16

サポートされているセンサー: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Frictionless Assessment Azure, Nessus Agent, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 4.4

CVSS v2

リスクファクター: Medium

基本値: 5

現状値: 3.9

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N

CVSS スコアのソース: CVE-2022-24778

CVSS v3

リスクファクター: High

基本値: 7.5

現状値: 6.7

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

現状ベクトル: CVSS:3.0/E:P/RL:O/RC:C

脆弱性情報

CPE: cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:containerd, cpe:/o:canonical:ubuntu_linux:18.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:golang-github-containerd-containerd-dev, cpe:/o:canonical:ubuntu_linux:20.04:-:lts

必要な KB アイテム: Host/cpu, Host/Ubuntu, Host/Ubuntu/release, Host/Debian/dpkg-l

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2022/12/13

脆弱性公開日: 2022/3/24

参照情報

CVE: CVE-2022-23471, CVE-2022-24769, CVE-2022-24778, CVE-2022-31030

USN: 5776-1