Ubuntu 16.04ESM: runC の脆弱性 (USN-6088-2)

high Nessus プラグイン ID 176257

概要

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

説明

リモートの Ubuntu 16.04 ESM ホストには、USN-6088-2 のアドバイザリに記載された複数の脆弱性の影響を受けるパッケージがインストールされています。

- 1.0.0-rc9 までの runc には、libcontainer/rootfs_linux.go に関連して、権限昇格を引き起こす不適切なアクセスコントロールがあります。攻撃者がこれを悪用するには、カスタムのボリュームマウント構成で 2 つのコンテナを生成し、カスタムイメージを実行できる必要があります。(Docker では実装詳細で攻撃がブロックされるので、この脆弱性の影響を受けません。)(CVE-2019-19921)

- runc は、OCI 仕様に従って Linux でコンテナを生成および実行するための CLI ツールです。runc では、関連するコンテナ構成をコードの「C」部分 (コンテナのベース名前空間を設定する部分) に指定するためのシリアル化システムとして、netlink が内部で使用されています。1.0.3より前のすべてのバージョンの runc では、エンコーダーはバイト配列属性タイプの 16 ビット長フィールドで発生する可能性がある整数オーバーフローに対処していませんでした。つまり、悪意のあるバイト配列属性が十分に大きい場合、長さがオーバーフローし、属性の内容がコンテナ構成のために netlink メッセージとして解析される可能性があります。この脆弱性を悪用するには、攻撃者がコンテナの構成をある程度制御できる必要があります。この脆弱性により、攻撃者はすべての名前空間を無効にする独自の netlink ペイロードを追加するだけで、コンテナの名前空間の制限をバイパスする可能性があります。影響を受ける主なユーザーは、(共有クラウドインフラストラクチャなどで) 信頼できない構成を含む信頼できないイメージを各自のマシンで実行できるようにしているユーザーです。runc バージョン1.0.3には、このバグの修正が含まれています。回避策として、コンテナからの信頼できない名前空間パスを禁止してみることができます。信頼できない名前空間パスにより、このバグがない場合でも、攻撃者が名前空間の保護を完全に無効にできる可能性があります。(CVE-2021-43784)

- runc は、OCI 仕様に従って Linux でコンテナを生成および実行するための CLI ツールです。バージョン 1.1.2より前の runc でバグが見つかりました。「runc exec --cap」が空ではない継承可能な Linux プロセス機能を持つプロセスを作成し、非定型の Linux 環境を作成し、execve (2) 中に継承可能なファイル機能を持つプログラムが、これらの機能を許可された設定に引き上げてしまうことが可能でした。継承可能な設定には、コンテナの境界設定に含まれるよりも多くの機能は含まれていないため、このバグはコンテナセキュリティサンドボックスに影響を与えませんでした。このバグは runc 1.1.2で修正されました。この修正では、「runc exec --cap」の動作が変更されるため、実行されるプロセスに付与された追加機能 (「--cap」引数で指定) に継承可能な機能が含まれなくなります。さらに、「runc spec」が、作成されたサンプル OCI 指定 (「config.json」) ファイルで継承可能な機能を設定しないように変更されています。(CVE-2022-29162)

- runc は、OCI 仕様に従ってコンテナを生成および実行するための CLI ツールです。影響を受けるバージョンでは、rootless runc が以下の条件で「/sys/fs/cgroup」を書き込み可能にすることがわかりました。1. runc がユーザー名前空間内で実行され、「config.json」が非共有にする cgroup 名前空間を指定しない場合 (例:「((docker|podman|nerdctl) run --cgroupns=host」、Rootless Docker/Podman/nerdctl) または 2. runc がユーザー名前空間外で実行され、「/sys」が「rbind、ro」でマウントされている場合 (例:「runc spec --rootless」、この状態は非常にまれです)。コンテナが、ホスト上のユーザーが所有する cgroup 階層「/sys/fs/cgroup/user.slice/...」への書き込みアクセス権を取得する可能性があります。他のユーザーの cgroup 階層は影響を受けません。
ユーザーはバージョン 1.1.5 にアップグレードすることを推奨します。アップグレードできないユーザーが、cgroup 名前空間の共有を解除する可能性があります (`(docker|podman|nerdctl) run --cgroupns=private)`。これは、cgroup v2 ホストでの Docker/Podman/nerdctl のデフォルトの動作です。または、「/sys/fs/cgroup」を「maskedPaths」に追加します。(CVE-2023-25809)

- 1.1.4 までの runc には、libcontainer/rootfs_linux.go に関連して、権限昇格を引き起こす不適切なアクセスコントロールがあります。攻撃者がこれを悪用するには、カスタムのボリュームマウント構成で 2 つのコンテナを生成し、カスタムイメージを実行できる必要があります。注意: この問題は、CVE-2019-19921 の回帰が原因で存在しています。(CVE-2023-27561)

- runc は、OCI 仕様に従ってコンテナを生成および実行するための CLI ツールです。コンテナ内の「/proc」が特定のマウント構成とシンボリックリンクされている場合、AppArmor がバイパスされる可能性があることがわかりました。この問題は、シンボリックリンクされた「/proc」を禁止することにより、runc バージョン 1.1.5 で修正されました。詳細については、PR #3785 を参照してください。ユーザーにアップグレードすることを推奨します。アップグレードできないユーザーは、信頼できないコンテナイメージの使用を回避する必要があります。(CVE-2023-28642)

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

ソリューション

影響を受けるgolang-github-opencontainers-runc-devやruncパッケージを更新してください。

参考資料

https://ubuntu.com/security/notices/USN-6088-2

プラグインの詳細

深刻度: High

ID: 176257

ファイル名: ubuntu_USN-6088-2.nasl

バージョン: 1.1

タイプ: local

エージェント: unix

公開日: 2023/5/23

更新日: 2023/10/20

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: Medium

基本値: 6

現状値: 4.7

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

CVSS スコアのソース: CVE-2021-43784

CVSS v3

リスクファクター: High

基本値: 7.8

現状値: 7

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

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

CVSS スコアのソース: CVE-2023-28642

脆弱性情報

CPE: cpe:/o:canonical:ubuntu_linux:16.04:-:esm, p-cpe:/a:canonical:ubuntu_linux:golang-github-opencontainers-runc-dev, p-cpe:/a:canonical:ubuntu_linux:runc

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

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

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

パッチ公開日: 2023/5/23

脆弱性公開日: 2020/1/28

参照情報

CVE: CVE-2019-19921, CVE-2021-43784, CVE-2022-29162, CVE-2023-25809, CVE-2023-27561, CVE-2023-28642

USN: 6088-2