Kubernetes コミュニティは脆弱性 CVE-2024-10220 を発見しました。この脆弱性を利用すると、Pod を作成して 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 タイプのボリュームをマウントし、リポジトリを Pod 内の .git サブディレクトリにクローンしたすべての Pod を一覧表示します。
kubectl get pods --all-namespaces -o json | jq '.items[] | select(.spec.volumes[]?.gitRepo? != null) | {name: .metadata.name, namespace: .metadata.namespace}'ソリューション
gitRepo ボリュームタイプは非推奨であるため、コミュニティでは init コンテナーを使用して Git のクローン操作を実行し、そのディレクトリを Pod を実行するコンテナーにマウントすることを推奨しています。詳細については、「例」をご参照ください。
ポリシー管理でコンテナーセキュリティポリシールールライブラリのポリシーを有効にすることで、クラスター内の指定された範囲にデプロイされる Pod が特定のボリュームタイプを使用することを制限できます。これにより、Pod が gitRepo ボリュームを使用することを防ぎ、攻撃者が gitRepo ボリュームを悪用することを制限できます。
ACK の関連公告に注意し、ノードプールを速やかにアップグレードすることを推奨します。詳細については、「ノードプールのアップグレード」をご参照ください。