Kubernetes – CVE-2025-5187: Nodes can delete themselves by adding an OwnerReference.Уязвимость заключается в том, что атакующий, сбежавший на
Node, может воспользоваться kubeconfig от kubelet и обойти ограничение NodeRestrictionPlugin, выставив на Node OwnerReference с несуществующим объектом. Это в свою очередь заставит удалиться скомпрометированную Node и даст возможность навесить на новую Node taints или labels, что позволит атакующему контроллировать какие контейнеры будут запущены на воссозданном скомпрометированном узле.Патч довольно простой и представляет из себя две строчки, в которых были добавлены проверки, запрещающие обновлять
onwerReference от имени Node:
if !apiequality.Semantic.DeepEqual(node.OwnerReferences, oldNode.OwnerReferences) {
return admission.NewForbidden(a, fmt.Errorf("node %q is not allowed to modify ownerReferences", nodeName))
}
Не смотря на кажущийся большой импакт на самом деле не всё так плохо.
1) Для эксплуатации уязвимости атакующий должен сбежать на
Node.2) Если у вас включен
OwnerReferencesPermissionEnforcement plugin, то считайте, что вас эта уязвимость не аффектит.Тем не менее, уязвимость получила оценку
Medium (6.7) по CVSS.Аффектит версии:
kube-apiserver: <= v1.31.11
kube-apiserver: <= v1.32.7
kube-apiserver: <= v1.33.3Патчи доступны для:
kube-apiserver: >= v1.31.12
kube-apiserver: >= v1.32.8
kube-apiserver: >= v1.33.4