SecTor 2025 | The Good, the Bad, and the Ugly: Hacking 3 Cloud Providers with 1 Vulnerability
三句話摘要
Wiz 安全研究團隊利用 NVIDIA Container Toolkit 單一容器逃逸漏洞,實測三家雲端 AI 服務供應商(Azure、Replicate、DigitalOcean)的安全縱深,結果截然不同。 單一零日漏洞能造成服務接管還是毫無影響,差異完全取決於各家供應商是否部署了多層縱深防禦——容器逃逸只是第一道門,後面還要有第二道、第三道才算真正安全。 容器逃逸原理來自掛載操作的時序問題。 NVIDIA Container Toolkit 在容器完全初始化、安全機制就位之前就執行掛載操作,且掛載的源與目標均由攻擊者控制的容器映像決定,攻擊者可透過精心構造的 Dockerfile 製造指向主機根目錄的符號連結,實現逃逸。
重點整理
重點- 1
容器逃逸原理來自掛載操作的時序問題。 NVIDIA Container Toolkit 在容器完全初始化、安全機制就位之前就執行掛載操作,且掛載的源與目標均由攻擊者控制的容器映像決定,攻擊者可透過精心構造的 Dockerfile 製造指向主機根目錄的符號連結,實現逃逸。
- 2
Azure 的縱深防禦在第二道障礙生效。 Azure 部署了虛擬 Kubernetes API 伺服器作為代理層,即使攻擊者成功逃逸容器並取得更高權限的 Kubernetes token,所有跨租戶請求仍被虛擬 API 層過濾,無法存取其他租戶資料。
- 3
Replicate 的架構設計讓 Redis 成為致命弱點。 Replicate 使用共享 Redis 實例作為所有 AI 模型的任務佇列,一旦攻擊者從容器逃逸至底層節點並取得 Redis 密碼,即可讀取或即時竄改平台上所有公開與私有模型的用戶提示與回應。
- 4
DigitalOcean 節點級別的 Kubernetes 憑證權限過高。 底層節點持有的 Kubernetes 憑證遠比用戶 pod 強大,攻擊者逃逸後可取得這些憑證,進而存取整個 700+ 節點共享叢集中所有客戶的資料、源碼與第三方雲端密鑰(AWS、GCP、Azure、GitHub)。
實用技巧與重點
乾貨- 漏洞資訊
- 漏洞元件:NVIDIA Container Toolkit(容器運行時程式庫)
- 漏洞類型:容器逃逸(Container Escape),邏輯漏洞,非核心漏洞
- 已由 NVIDIA 分配 CVE 編號並在先前版本修復
- 後續在同一程式庫發現第二個更嚴重漏洞:3 行程式碼即可達成容器外代碼執行
- 時間成本
- 第一個漏洞研究耗時:約 10 天
- 第二個漏洞研究耗時:約 1 天(有前次源碼閱讀基礎)
- 受測供應商與結果
- Azure Container Instances:逃逸成功,跨租戶攻擊被阻止(縱深防禦有效)
- Replicate:逃逸成功 → Redis 密碼洩露 → 全平台提示/預測可讀寫,被藍隊偵測
- DigitalOcean Paperspace:逃逸成功 → 節點 Kubernetes 憑證 → 700+ 節點叢集全控,Image Pull Secrets 外洩
- DigitalOcean 暴露面
- Kubernetes 叢集節點數:700+
- 可存取資料:所有客戶模型、源碼、資料集、環境變數、容器內檔案
- 可存取密鑰種類:Azure、AWS、GCP、GitHub 及其他雲端服務的 Image Pull Secrets
- 工具與技術名稱
- NVIDIA Container Toolkit、Docker、Kubernetes、kubectl
- Redis(Replicate 任務佇列)、Cog 格式(Replicate 模型上傳格式)
- Procfs(/proc)、Unix Socket、Kestrel(.NET HTTP 伺服器,Azure 虛擬 API 使用)
- 開源框架:Peach(多租戶隔離設計框架)
- 活動資訊
- Zero Day Cloud 計畫,與 AWS、Google Cloud、Microsoft 合作,Black Hat Europe(倫敦)舉辦
- 針對開源元件零日漏洞提供現金獎勵,官網:zeroday.cloud
結論
結論“單一零日漏洞能造成服務接管還是毫無影響,差異完全取決於各家供應商是否部署了多層縱深防禦——容器逃逸只是第一道門,後面還要有第二道、第三道才算真正安全。”
完整解析
詳細Wiz 安全研究員 Nir Ohfeld 與 Ilan Ben Sasson 在 Black Hat 上發表了這場研究,主題是他們如何用一個 NVIDIA Container Toolkit 的容器逃逸漏洞,系統性地測試多家 AI 雲端供應商的安全縱深,並以三個截然不同的結果說明:決定損害大小的關鍵不是漏洞本身,而是各家服務的安全架構設計。
NVIDIA Container Toolkit 是幾乎所有 AI 雲服務的共同元件,它讓 Docker 容器得以存取 NVIDIA GPU。研究人員發現,這個工具套件在容器完全初始化之前就執行掛載操作,而掛載的源與目標都由攻擊者控制的容器映像決定。透過在 Dockerfile 中製造指向主機根目錄的符號連結,攻擊者可將整個主機檔案系統掛載進容器,再透過 Docker Unix Socket 建立新的特權容器共享主機命名空間,完成從容器到主機的完整逃逸。這個漏洞之所以普遍,是因為凡是需要 GPU 的 AI 工作負載幾乎都依賴它。
第一個案例是 Azure Container Instances。研究團隊成功逃逸至底層主機,並從主機上找到 Kubernetes 憑證,進而繞過網路限制連上 Kubernetes API;他們甚至透過嗅探節點流量,攔截到 Azure 門戶操作觸發的更高權限 Kubernetes Token。然而,當他們試圖使用這個強力 Token 列舉其他租戶的節點時,發現自己其實是在跟一個以 .NET 寫成的虛擬 Kubernetes API 伺服器溝通,而非真正的 Kubernetes API。這個虛擬層會過濾所有跨租戶請求,即使是授權的查詢,返回的資源也只限於自身租戶。研究人員嘗試掃描內網尋找真實 API 伺服器、尋找日誌代理漏洞等各種繞過方式,全數失敗。Azure 的縱深防禦在第二道障礙有效攔截了攻擊。
第二個案例 Replicate 則揭示了共享基礎設施的風險。Replicate 允許用戶上傳 Cog 格式(本質是 Docker 容器)的 AI 模型,研究人員將惡意容器偽裝成 AI 模型,使其如遠端 Shell 般運作並植入漏洞利用程式碼。逃逸至底層節點後,他們在 procfs 中發現一個 Redis 進程,命令列參數中清楚地帶著密碼。這個 Redis 實例正是 Replicate 的共享任務佇列,連接所有平台上的 AI 模型——包括字節跳動、Salesforce、OpenAI 等知名企業的模型。取得 Redis 控制權意味著可以讀取或即時竄改平台上所有用戶的提示與預測,無論是公開還是私有模型。不過,Replicate 的藍隊及時偵測到異常活動,帳號被暫停,安全團隊主動聯繫確認是否為合法研究。研究人員評價其偵測能力相當出色。
第三個案例 DigitalOcean Paperspace 則造成了最嚴重的影響。逃逸至底層 Kubernetes 節點後,研究人員取得了節點層級的 Kubernetes 憑證——其權限遠超用戶 pod 所能擁有的。使用這組憑證執行 `kubectl get nodes`,回傳超過 700 個節點,確認這是一個龐大的多租戶共享叢集。透過自建的備用帳號測試,他們確認可以存取任意客戶 pod 中的所有內容:模型、源碼、資料集、環境變數,乃至用於拉取私有容器映像的 Image Pull Secrets。這些 Secrets 中儲存著客戶在 Azure、AWS、GCP、GitHub 等平台上的雲端憑證,攻擊者因此得以從 DigitalOcean 橫向滲透至客戶的其他雲端環境,大幅擴大攻擊範圍。
研究人員在結論中指出三點核心教訓:容器不應是不同隔離環境之間唯一的安全屏障;真正需要強隔離的場景(如不同租戶之間)應同時部署計算、網路、身份驗證、授權等多層防護;以及適當的安全態勢確實能讓環境在面對零日漏洞時具備韌性。他們也預告了在同一 NVIDIA Container Toolkit 程式庫中發現的第二個更嚴重漏洞,僅需 3 行程式碼即可完成攻擊,說明此攻擊路徑並非偶發事件,而是雲端容器運行時層面持續存在的結構性風險。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

