阿里云容器服務Kubernetes版已修復kube-controller-manager組件中存在的SSRF漏洞CVE-2020-8555。通過認證鑒權的攻擊者可能通過服務端請求偽造獲取控制節點(Master Node)網絡下未經認證鑒權保護接口返回的任意信息。本文介紹該漏洞的影響、解決辦法及防范措施。

SSRF漏洞在CVSS的評分為3.0(CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N),威脅等級為中級。

影響范圍

攻擊前提:
  • kube-apiserver暴露了非認證本地端口。
  • 存在其他不受保護的服務被暴露于控制臺節點(Master Node)網絡下。
  • 惡意用戶在目標集群有創建Pod權限并有StorageClass的寫權限。
下列版本均在此CVE影響范圍:
  • kube-controller-manager v1.16.0~v1.16.8
  • kube-controller-manager<v1.15.11

受影響的存儲類型有:GlusterFS、Quobyte、 StorageFS、ScaleIO。

解決辦法

經過了認證鑒權的攻擊者可以利用kube-controller-manager當前存在的SSRF漏洞,通過創建帶有指定存儲類型(GlusterFS、Quobyte、StorageFS、ScaleIO)的Pod或StorageClass完成對控制臺節點(Master Node)網絡下其他服務的GET或POST請求,從而對控制臺節點網絡下未經認證鑒權保護的服務進行網絡探測或內網服務攻擊,例如通過開啟了非認證8080端口的apiserver獲取secret信息。

ACK集群默認不開啟8080非安全端口,同時所有子賬號需要經過相應的RBAC授權。默認狀態下所有子賬號(集群創建者除外)沒有Pod和StorageClass的創建權限。當前解決辦法先合入pr.k8s.io/89794提及的修復方法并提供相應的kube-controller-manager組件升級能力,以規避暴露在控制臺節點網絡下其他未保護服務的信息泄露危險。

防范措施

說明 當前ACK已提供了包含漏洞修復的1.16.9-aliyun.1版本,請您盡快升級至最新的1.16.9-aliyun.1版本。
如果您由于業務原因暫時無法升級集群,建議您采取以下安全防范措施:
  • 當前ACK集群默認關閉apiserver 8080非認證端口,請不要手動開啟該端口。
  • 排查控制臺節點網絡下暴露的Service是否開啟了認證鑒權,對未保護的服務評估影響,關閉其中可能造成信息泄露的服務。
  • 限制可疑用戶創建Pod和StorageClass的寫權限。