近期,Kubernetes 社區披露了安全性漏洞 CVE-2025-5187。攻擊者在擁有節點修改許可權的情況下,可利用 NodeRestriction 控制器的漏洞,通過為節點添加指向特定資源的 OwnerReference 中繼資料來刪除該節點對象。若 OwnerReference 中定義的目標資源不存在或後續被刪除,相關節點對象將通過記憶體回收機制被移除。
預設情況下,叢集的節點營運使用者雖有權建立或更新其節點對象,但無權刪除。由於 NodeRestriction 准入控制器未能阻止對節點 OwnerReferences 的更新,被入侵的節點可利用此漏洞進行刪除和重建。這將允許攻擊者繞過 NodeRestriction 控制器對節點自身汙點或標籤的修改限制,從而使用修改後的配置重建節點,並控制在該節點上啟動並執行 Pod。
該漏洞被評為中危,CVSS 評分為 6.7。更多社區披露資訊,請參閱 #133471。
影響範圍
以下社區版本的kube-apiserver均受此漏洞影響:
kube-apiserver:<= v1.31.11
kube-apiserver:<= v1.32.7
kube-apiserver:<= v1.33.3
ACK 已在 1.32.7 和 1.33.3 版本的叢集中完成此漏洞的修複。
檢測方式
正常情況下,kubelet 不會發起修改自身 OwnerReferences 的請求。您可以使用叢集API Server審計功能,在審計日誌中執行以下檢索語句,排查是否存在針對節點 OwnerReferences 的可疑更新操作。
ownerReferences and verb: patch and objectRef.resource: nodes如下圖所示,當前未查詢到日誌,則表明不存在異常操作。

防範措施
您可以參見以下措施進行防範。
1. 升級叢集
2. 啟用 OwnerReferencesPermissionEnforcement
請配置kube-apiserver組件參數,開啟 OwnerReferencesPermissionEnforcement 准入控制器。該控制器可保護對目標對象 OwnerReferences 的訪問,確保只有具備刪除許可權的使用者才能修改對象。
啟用方式,請參見自訂Pro版叢集的控制面組件參數。
