安全廠商Aqua Security發現Linux核心存在一項漏洞,讓攻擊者可突破Kubernetes容器而在主機系統執行程式碼。

編號CVE-2022-0185的漏洞是一項堆積型記憶體緩衝溢位漏洞,出在Linux核心的Filesystem Context功能中的legacy_parse_param函式對輸入指令參數未能妥善驗證,讓沒有管理員權限的使用者在特定Kubernetes環境下可擴充其權限到root權限以執行程式碼,即所謂容器突破(container breakout)攻擊。

發現本項漏洞的Aqua Security公司指出,要執行這項攻擊,攻擊者必須為本地用戶,且須具備CAP_SYS_ADMIN權限。CAP_SYS_ADMIN並非Docker或其他容器環境的預設功能,必須在啟動容器時特別開啟。不過攻擊者只需利用unshare(CLONE_NEWNS|CLONE_NEWUSER)即可以CAP_SYS_ADMIN許可進入命名空間。

而在標準Docker提供的另一項保護下,unshare指令會被Docker seccomp filter封鎖而無法執行。但是研究人員指出一項例外情況:在Kubernetes叢集下的Docker或其他容器平臺上,這filter是預設關閉的,意謂未能封鎖unshare指令,而讓研究人員在Linux系統得以行使完整的shell指令。

目前安全公司尚未發現這項漏洞的實際開採程式碼,然而一名研究人員已公佈在Google強化的COS(Container-Optimized OS)上的概念驗證程式。安全廠商預期真正的開採程式可能也很快會發佈。

本項漏洞風險被列為7.8。在研究人員通報下,主要Linux發行版如Red HatUbuntuSUSEOracle Linux等已釋出更新版本。

熱門新聞

Advertisement