CVE-2025-62725 路徑遍歷漏洞分析:從 OCI 映像檔到任意檔案寫入,開發者應立即升級
Docker Compose 是數百萬開發者與企業賴以建立、執行和部署應用程式的核心工具。然而,資安公司 Imperva 近期揭露的一個高風險漏洞(CVE-2025-62725)情資顯示,即便是執行 docker compose ps 這樣看似無害的「唯讀」指令,也可能導致我們有在使用 Docker 的主機系統遭到入侵。
這個漏洞存在於 Docker Compose 處理 OCI (Open Container Initiative) 映像檔的新功能中,其危險性在於它打破了開發者對於「唯讀指令是安全的」的基本信任。
漏洞核心在於信任遠端路徑的缺陷
此漏洞被編號為 CVE-2025-62725(GitHub 安全公告編號為 GHSA-gv8h-7v7w-r22q),CVSS 評分高達 8.9(高風險)。漏洞的根源在於 Docker Compose 處理 OCI 映像檔中的「層註釋」(layer annotations)時,存在一個嚴重的路徑遍歷(Path Traversal)缺陷。

根據 Imperva 的資安研究員 Ron Masas 的分析,為了讓 Compose 專案更具可攜性,Docker 新增了讀取 OCI 映像檔作為 Compose 檔案來源的功能。當 Compose 下載並重建這些遠端 OCI 映像檔時,它會讀取其中的註釋,例如:
com.docker.compose.file
com.docker.compose.envfile
com.docker.compose.extends
問題在於,舊版 Compose 完全信任這些註釋中提供的檔案路徑。
Docker compose ps 如何觸發系統入侵的攻擊情境?
攻擊者可以精心製作一個惡意的 OCI 映像檔,並在其註釋中插入一個路徑遍歷的字串,例如 ../../home/user/.ssh/authorized_keys。
接著,攻擊者僅需透過社交工程或其他方式,誘使開發者在其 docker-compose.yaml 檔案中「包含 (include:)」這個惡意的遠端 OCI 映像檔。
最關鍵的危險點在於,受害者不需要執行 docker compose up 來啟動容器。
受害者只要在該目錄下執行任何會強制 Compose 解析遠端映像檔的指令,例如:
docker compose ps (查看當前狀態)
docker compose config (驗證和查看配置)
Compose 就會開始下載並處理該惡意 OCI 映像檔。當它讀取到惡意的路徑註釋時,會將攻擊者提供的檔案內容(例如攻擊者的 SSH 公鑰)寫入到本地快取目錄之外的任意位置。
在 Imperva 展示的 PoC 中,攻擊者成功利用此漏洞,將自己的公鑰寫入了受害者主機的 ~/.ssh/authorized_keys 檔案中,進一步獲得了對受害者系統的完整 SSH 存取權限。
影響範圍與 Docker 官方修補
這個漏洞的影響範圍極廣,幾乎涵蓋了所有使用 Docker Compose 的環境:
Docker Desktop (Windows, macOS, Linux)
獨立的 Docker Compose 二進位檔
CI/CD 執行器 (Runners)
雲端開發環境
受影響版本:
Docker Compose v2.40.2 之前的所有版本。
官方解決方案
Docker 團隊在接獲通報後迅速採取行動,並已於 v2.40.2 版本中修復了此漏洞。
根據 Docker 的 GitHub 安全公告,修補方式是在 pkg/remote/oci.go 檔案中引入了一個新的 validatePathInBase() 函數。此函數會對 OCI 註釋中提供的路徑進行標準化和驗證,確保解析後的最終路徑絕對位於快取目錄內部,拒絕任何試圖「跳出」快取目錄的絕對路徑或遍歷嘗試。

官方版本釋出後,各 Linux distro 陸續更新了 docker compose 套件,本例是 Ubuntu Linux 更新的 docker-compose-plugin 2.40.3-1。
立即升級 Docker 並重新審視供應鏈安全
CyberQ 觀察,CVE-2025-62725 告訴我們一個經典但致命又常見的資安疏忽,永遠不要信任來自遠端的任何輸入,即使它只是 YAML 設定檔中的一個路徑。
對於所有開發者、維運團隊和資安人員來說,要減少未來風險的話,我們需要進行:
1、立即升級,將所有環境中的 Docker Compose(包括 Docker Desktop)更新至 v2.40.2 或更高版本。
2、審核依賴,重新嚴格審核 docker-compose.yaml 中包含的任何遠端資源或 OCI 映像檔,確保其來源可信。
3、打破迷思 「唯讀」指令不代表「無風險」的迷思,在現代複雜的工具鏈中,任何涉及網路 I/O 和檔案解析的操作都可能成為攻擊的一環。
正如 Imperva 在其分析報告中所強調的:
「即便是 YAML,也要對每個路徑進行過濾。」
Imperva










