情境示意圖,圖片來源/Kubernetes

研究人員發現,Kubernetes的Go函式庫一項重大漏洞,可能導致容器遭到阻斷服務(denial of service,DoS)攻擊。

Palo Alto公司的Unit42研究人員Aviv Sasson是在K8s運行的一個名為container/storage的Go函式庫中,發現安全漏洞CVE-2021-20291。這個漏洞可以在儲存庫(registry)上傳惡意映像檔時觸發,即當使用者從registry拉取這個映像檔時,造成對CRI-O及Podman兩個容器引擎的DoS攻擊。

研究人員解釋,拉取容器映像檔第一步是下載其宣言(manifest)。宣言是一個包含建立映像檔方法指示的檔案,內容包含映像檔作業系統、CPU架構,或是映像層陣列(layer array),後者是說明組成容器檔案系統的各層的清單。當用戶從儲存庫拉取映像時,容器引擎會讀取這個清單,並下載、解壓縮每一層。

攻擊者可以將其中一層惡意層上傳到儲存庫中,然後上傳使用好幾層、包含這個惡意層的映像檔。等受害者拉取該映像檔時,就能造成惡意層下載到Kubernetes中,進而開採Go函式庫漏洞。經由這個漏洞,駭客就可以危及所有依賴這些容器引擎的容器基礎架構,包括Kubernetes和Red Hat OpenShift。

這漏洞影響層面相當大,因為從Kubernetes 1.20版起,Docker就退役了,唯一的容器引擎是CRI-O及Containerd,這會讓許多使用CRI-O的叢集曝險。攻擊者可能將惡意映像檔下載到多個不同節點,讓它們同時掛點,使它們除了重啟節點外無從修補問題。

研究人員於今年3月10日向container/storage維護單位通報,現在container/storage 1.28.1版(rs/storage/releases/tag/v1.28.1)已經修補漏洞。此外,相關容器引擎也同時釋出修補好的CRI-O 1.20.2及Podman 3.1.0版。

上個月同一名研究人員也公布 Docker Hub上下載總數超過2千萬次的30個映像檔內含挖礦程式

熱門新聞

Advertisement