Cloudflare

Cloudflare Containers 磁碟重用漏洞:容器隔離邊界遭突破,客戶殘留資料可被跨帳戶讀取

作者

此漏洞顯示即使如 Cloudflare 這類成熟基礎設施供應商,也可能在磁碟生命週期管理上出現細微但嚴重的設定失誤。雖然攻擊僅限於被動讀取殘留資料且無法鎖定目標,但洩漏的憑證與資料庫仍構成實際風險;修復過程完整且透明,但未說明不安全設定啟用時間,仍是評估整體曝險的關鍵缺口。

Cloudflare Containers 磁碟重用漏洞:容器隔離邊界遭突破,客戶殘留資料可被跨帳戶讀取

背景:共享容器服務的隔離假設

Cloudflare Containers 是 Cloudflare 提供的容器執行服務,客戶可以把自己的程式部署在雲端伺服器上。這些伺服器由許多帳戶共享,而且伺服器的選擇權在 Cloudflare 手中,客戶無法指定程式跑在哪一台機器上。Cloudflare Sandboxes 則建構在 Containers 之上,定位為可以安全執行不受信任程式碼的環境,包括 AI 代理程式(AI agent)所產生的程式碼。2026 年 9 月 4 日,安全廠商 Accomplish 的研究員 Oren Yomtov 透過 Cloudflare 的漏洞獎勵計畫回報了一個嚴重問題:一個付費客戶的容器,竟然可以讀取同一台伺服器上其他客戶容器遺留下來的磁碟資料。根據資安媒體 The Hacker News 的報導,Cloudflare 與研究團隊在 9 月 24 日公開了這項發現,並表示已完成修復,客戶不需要採取任何行動。值得注意的是,這些殘留資料來自先前容器曾經使用、後來釋出的磁碟空間,並非任何正在執行的工作負載;攻擊者也無法選擇要取得誰的資料。

核心內容:thin provisioning 與被跳過的抹除步驟

問題的根源在於共享磁碟的配置方式。每個容器會獲得一個以 Linux thin provisioning 功能建立的磁碟,這項技術以 64KB 為單位配置儲存空間,目的是讓多個虛擬磁碟共享同一份實體儲存,藉此節省空間。當一個容器被刪除時,它使用的區塊會回到一個跨客戶帳戶共享的儲存池。正常情況下,這個儲存池在把區塊交給下一個容器之前,應該先執行抹除(wipe)動作,把區塊內容清空;但 Cloudflare 的設定卻跳過了這一步,而抹除原本是這類系統的預設行為。於是,當新容器只寫入少量資料到一個被重複使用的區塊時,區塊其餘部分仍然保留著前一個容器留下的位元組資料。

研究員採用的攻擊方法相當直接:他們在未使用的空間寫入一個 4KB 的小區塊,然後在原始磁碟層級把整個 64KB 區塊讀回來。由於他們只寫入了 4KB,其餘 60KB 的內容仍然來自前一個容器。在 Cloudflare 指定的生產環境伺服器上,研究團隊進行了 24 次測試,其中 18 次成功讀取到殘留資料;橫跨四大洲的 22 台底層機器上,則有 20 台出現相同結果。Cloudflare 表示,回收的區塊中包含目錄結構、資料庫頁面,以及結構完整的 SQLite 資料庫;研究員自己的報告則列出了目錄清單、SQLite 資料庫、Chromium 瀏覽器設定檔、.env 檔案與憑證檔案,並將這些內容描述為其他客戶的檔案。

影響與限制:資料外洩的實際邊界

需要強調的是,研究員的解析腳本只輸出計數與格式檢查結果,並未輸出檔案內容;他們提交給 Cloudflare 的資料中不含第三方名稱、識別資訊、憑證或復原的內容,且在提交後已確認這些資料被安全刪除。此外,研究團隊並未證明這項漏洞能夠修改其他客戶的即時資料,或讓任何工作負載離線。這意味著漏洞的影響範圍僅限於讀取殘留資料,而非主動攻擊或竄改其他客戶的系統。儘管如此,殘留的憑證檔案與結構完整的資料庫仍然構成實際的資料外洩風險,因為這些內容可能包含帳號密碼、瀏覽紀錄或應用程式設定,一旦落入有心人士手中,可能被用於進一步的入侵或身分冒用。

修補過程與後續清查

Cloudflare 分兩階段修復這項漏洞。第一步是重新啟用區塊交出前的抹除動作,這立即阻止了研究員回報的攻擊方法;研究員在 9 月 14 日確認他們的概念驗證程式碼已經失效。但這個修改並未清理已經映射到執行中容器磁碟的區塊,也沒有清理每台伺服器上預製映像層的快取,新容器仍可能繼承並讀取這些資料。因此 Cloudflare 進一步汰換了所有執行中容器的磁碟並清除相關快取,在離峰時段排空並重新啟動伺服器。這項清理工作在 9 月 19 日完成,五天後公開漏洞細節。

Cloudflare 也檢查了是否有人在此之前利用過這個方法。他們根據研究員的概念驗證程式碼與自行複製的攻擊程式建立了偵測特徵,並比對保留的磁碟活動紀錄,結果只找到研究員與自家工程師的授權測試,沒有發現其他使用者利用此方法的證據。不過,Cloudflare 並未說明這份紀錄涵蓋的時間範圍,也未說明不安全設定是何時開始啟用的,因此外界無法從這份說明判斷漏洞實際暴露了多久。

脈絡解讀:研究員的連續發現與產品範圍爭議

研究團隊另外指出,同樣的磁碟設定也影響了 Cloudflare 的 Browser Run 產品,並將這項漏洞描述為他們自 7 月以來發表的第六次程式碼沙箱逃逸;先前的研究對象包括 Anthropic 的 Claude Cowork 與 Claude Code、Cursor 的命令列工具、Docker,以及 OpenAI 的 Codex。Cloudflare 的公告則只點名 Containers 與 Sandboxes 受到影響,沒有提及 Browser Run,兩邊的說法存在差異。整體而言,這起事件顯示共享基礎設施中磁碟重用機制的細微設定錯誤,可能跨越客戶之間的隔離邊界;雖然攻擊者無法鎖定特定目標,只能被動接收殘留資料,但這類漏洞的發生也再次凸顯容器隔離技術在實作層面的複雜性,以及安全研究在發現此類隱蔽問題上的價值。

本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。