注目★★★★★GitHub Advisory
Kyverno v1.18.1、NamespacedMutatingPolicyで任意 namespace にリソース生成
30秒で把握
- 1Kyverno v1.18.0/1.18.1で任意namespaceへのリソース生成が可能
- 2NamespacedMutatingPolicyのmatchConditionsが実際の攻撃経路
- 3admission controllerの全namespace権限でRoleBinding作成も可能
要約
Kyverno v1.18.0およびv1.18.1では、NamespacedMutatingPolicyを作成できるnamespaceスコープの利用者が、CELのgenerator.apply()に任意のnamespaceを渡し、admission controllerの権限で他namespaceへリソースを生成できる。kube-systemへのConfigMap作成やNetworkPolicyによる通信妨害、RoleBindingによる権限昇格につながる。原因はgenerator.apply()のnamespace引数を検証していないことだ。v1.18.1ではNamespacedGeneratingPolicy自体は攻撃経路ではなく、matchConditions内のNamespacedMutatingPolicyが実際の経路になる。
あなたへの影響
Kyverno v1.18.0またはv1.18.1で非管理者にNamespacedMutatingPolicy作成権限を与えているチームは、近日中に権限付与状況とadmission controllerのRBACを確認し、修正版への更新を実施してください。
推奨:generator.apply()は指定namespaceへのリソース生成を実行するCEL関数です。