FixVibe
FixVibe がカバーhigh

runc ファイル記述子リークによるコンテナ ブレークアウト (CVE-2024-21626)

CVE-2024-21626 は、悪意のあるイメージやコンテナ プロセスがホスト ファイル システムに到達する可能性がある、重大度の高い runc ファイル記述子リークです。 FixVibe リポジトリ スキャンは、ソースの証拠をデプロイされたランタイムの悪用可能性から明確に分離しながら、ブレイクアウト条件に関連付けられたコンテナーの作業ディレクトリ構成にフラグを立てるようになりました。

CVE-2024-21626GHSA-xr7r-f8xq-vfvvCWE-200CWE-403CWE-668

影響

CVE-2024-21626 により、コンテナの実行に関与する悪意のあるイメージまたはプロセスが、影響を受ける runc コンテナをエスケープし、ホスト ファイルシステムにアクセスすることが可能になります。 runc のメンテナによって文書化された亜種も、ホストのバイナリを上書きし、[S1] の完全なホストの侵害につながる可能性があります。 NVD は同じコンテナ ブレークアウト動作を記録し、runc 1.1.12 は [S2] を修正します。

根本原因と影響を受けるバージョン

アップストリーム アドバイザリは、1.0.0-rc93 から 1.1.11 までの runc バージョンを対象としています。内部ファイル記述子はコンテナ プロセスで利用可能なままである可​​能性があり、影響を受けるリリースでは、最終的な作業ディレクトリがコンテナ マウント名前空間 [S1] 内に留まっていることが検証されませんでした。したがって、「/proc/self/fd/7」などの悪意のあるコンテナ作業ディレクトリは、ホスト名前空間に解決される可能性があります。 runc 1.1.12 は、リークした記述子を閉じ、[S1] を実行する前に作業ディレクトリを検証します。

FixVibe がカバー

接続された GitHub リポジトリ スキャンは、このコンテナ ブレークアウト条件に関連付けられた Dockerfile および Kubernetes ワークロード構成にフラグを立てるようになりました。調査結果により、影響を受けるリポジトリ ファイルと構成の場所が特定され、可能性の高い問題 の証拠姿勢が使用され、その信頼性がソースと構成の一致に適用されることが示されます。

FixVibe は、イメージやコンテナーを実行したり、ホスト ファイルにアクセスしたり、バイナリを上書きしたり、ブレークアウトを試みたりしません。リポジトリの検出結果は、構成がデプロイされていること、ホストが runc を使用していること、またはデプロイされたランタイムが影響を受けるバージョン範囲に含まれていることを証明するものではありません。お客様は、その結果を実際の悪用が確認されたものとして扱う前に、実際のランタイム インベントリを確認する必要があります。

修復

コンテナーの作業ディレクトリをイメージ内の通常のパスに置き換えます。ワークロードを実行できるすべての Docker、containerd、Kubernetes ノード、CI ランナー、ビルド ホスト、およびスタンドアロン ランタイムを runc 1.1.12 以降、または CVE-2024-21626 [S1] 用にパッチが適用されていると文書化されているベンダー パッケージにアップグレードします。レビュー済みのイメージとマニフェストを再構築して再デプロイすることで、古いアーティファクトが危険な構成を保存できないようにします。

この作業ディレクトリの状態は非常に珍しいため、導入されたコミット、イメージの出自、レジストリ署名、アドミッション ログと監査ログ、およびコンテナ アクティビティを確認してください。構成が実行可能な環境に達した場合は、所有者のインシデント対応プロセスを通じてエスカレーションします。

runc ファイル記述子リークによるコンテナ ブレークアウト (CVE-2024-21626) — FixVibe research · FixVibe