Kubernetesコミュニティが脆弱性CVE-2024-10220を発見しました。 この脆弱性により、ポッドを作成し、gitRepoボリュームを関連付けてコンテナ境界を超えて任意のコマンドを実行する権限を持つユーザーが可能になります。 攻撃者は、ターゲットGitリポジトリのhooksフォルダーを悪用して、コンテナ外で任意のコマンドを実行し、コマンド注入攻撃を容易にすることができます。
CVE-2024-10220脆弱性は重大度が高いと評価され、その共通脆弱性スコアリングシステム (CVSS) のスコアは8.1です。 この脆弱性の詳細については、「 #128885」をご参照ください。
影響を受けるバージョン
次のkubeletバージョンは、この脆弱性の影響を受けます。
v1.30.0からv1.30.2
v1.29.0からv1.29.6
v1.28.11およびそれ以前
この脆弱性は次のバージョンで修正されます:
v1.31.0
v1.30.3
v1.29.7
v1.28.12
脆弱性検出
次のコマンドを使用して、この脆弱性がクラスターで悪用されているかどうかを確認できます。
このコマンドは、gitRepo型のボリュームをマウントし、リポジトリを. git
ポッド内のサブディレクトリ。
kubectl get pods --all-namespaces -o json | jq '.items[] | select(.spec.volumes[].gitRepo.directory | endswith("/.git")) | {name: .metadata.name, namespace: .metadata.namespace}'
解決策
gitRepoボリュームタイプは非推奨なので、コミュニティでは、initコンテナーを使用してGit clone操作を実行し、ポッドを実行するコンテナーにディレクトリをマウントすることをお勧めします。 詳細は、「example」をご参照ください。
ポリシーガバナンスでACKBlockVolumeTypesポリシーを有効にすることで、クラスターの指定されたスコープにデプロイされたポッドが特定のボリュームタイプを使用することを制限できます。 これにより、ポッドがgitRepoボリュームを使用するのを防ぎ、攻撃者がgitRepoボリュームを悪用するのを制限できます。
関連するACK通知に注意を払い、ノードプールを迅速に更新することを推奨します。 詳細については、「ノードプールの更新」をご参照ください。