歡迎您光臨本站 註冊首頁

Kubernetes kubectl cp 命令中發現第三處目錄遍歷問題

←手機掃碼閱讀     admin @ 2019-08-23 , reply:0

Kubernetes 官方又發現了一處 kubectl cp 命令相關的目錄遍歷漏洞。

該漏洞可以使 kubectl cp 命令啟用目錄遍歷,使得惡意容器可以替換或創建用戶工作站上的文件。漏洞屬於客戶端缺陷,需要利用用戶交互,惡意用戶可能創建或覆蓋 kubectl cp 操作的目標目錄之外的文件。

受影響版本:

  • Kubernetes 1.0.x-1.12.x
  • Kubernetes 1.13.0-1.13.8
  • Kubernetes 1.14.0-1.14.4
  • Kubernetes 1.15.0-1.15.1

這是近段時間在 Kubernetes kubectl cp 命令中發現的第三個相關問題了,此前我們報導過這一命令漏洞:

kubectl cp 命令允許在容器和用戶計算機之間複製文件。要從容器中複製文件,Kubernetes 調用容器內的`tar`二進位文件,以創建或解壓 tar 包。

對 tar 的操作依賴於 CMD/CP/cp.go,其中的函數`copyFromPod`實現了從容器中複製文件的過程,它通過遠程 exec(`&exec.DefaultRemoteExecutor`)調用容器中的 tar,然後在函數`untarAll`中解壓用戶機器上的結果。此函數使用「archive/tar」 Go 包根據結果 tar 頭進行 tar 解析,最後將文件寫入目標目錄。

這個過程中,如果容器上的`tar`二進位文件是惡意的,那麼它可以運行任意代碼並輸出惡意結果,這將最終導致典型的目錄遍歷攻擊,允許惡意容器在複製時將任何文件寫入用戶計算機上的任何路徑。

雖然此前已經引入了`cp.go:clean`函數來避免這個目錄遍歷,但是 Ariel 發現其實可以創建和跟蹤來自 tar 頭的符號鏈接,攻擊者可以製作一個惡意 tar,其中包含一個帶有幾乎任何路徑的符號鏈接的頭,以及一個與符號鏈接同名的目錄內文件的後續頭。當通過 cp untar 函數提取時,鏈接將導致在符號鏈接的路徑中創建或修改所需文件。

此問題已經修復,kubectl cp 命令在執行 untar 過程中對所有子文件的目標路徑將執行更嚴格的校驗,禁止所有在 cp 目標路徑外的解壓后拷貝動作。

用戶可以通過升級 kubectl 來修復該漏洞:

  • kubectl 版本為 1.13.x,升級到 1.13.9。
  • kubectl 版本為 1.14.x,升級到 1.14.5。
  • kubectl 版本為 1.15.x,升級到 1.15.2。
  • kubectl 版本為 1.12.x 及以下版本,升級到 1.13.9、1.14.5 或 1.15.2。

詳情查看:


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/109286/kubectl-cp-3rd-cve
Kubernetes kubectl cp 命令中發現第三處目錄遍歷問題已經有123次圍觀

http://coctec.com/news/all/show-post-212663.html