Docker 安全性公告
Docker Desktop 4.44.3 安全性更新:CVE-2025-9074
上次更新日期:2025 年 8 月 20 日
Docker Desktop 中的一個漏洞已於 8 月 20 日在 4.44.3 版本中修復
- 修復了 CVE-2025-9074,該漏洞允許惡意容器在 Docker Desktop 上運行時,無需掛載 Docker socket 即可存取 Docker Engine 並啟動額外的容器。這可能導致未經授權地存取主機系統上的使用者檔案。增強型容器隔離 (Enhanced Container Isolation, ECI) 無法緩解此漏洞。
Docker Desktop 4.44.0 安全性更新:CVE-2025-23266
上次更新日期:2025 年 7 月 31 日
我們已知悉 CVE-2025-23266,這是一個影響 NVIDIA Container Toolkit 在 CDI 模式下(最高版本 1.17.7)的嚴重漏洞。Docker Desktop 包含 1.17.8 版本,不受此漏洞影響。然而,如果手動啟用 CDI 模式,捆綁了早期工具包版本的舊版 Docker Desktop 可能會受到影響。請升級到 Docker Desktop 4.44 或更高版本,以確保您使用的是已修補的版本。
Docker Desktop 4.43.0 安全性更新:CVE-2025-6587
上次更新日期:2025 年 7 月 3 日
Docker Desktop 中的一個漏洞已於 7 月 3 日在 4.43.0 版本中修復
- 修復了 CVE-2025-6587,該漏洞導致敏感系統環境變數包含在 Docker Desktop 診斷日誌中,可能導致機密資訊洩露。
Docker Desktop 4.41.0 安全性更新:CVE-2025-3224、CVE-2025-4095 和 CVE-2025-3911
上次更新日期:2025 年 5 月 15 日
Docker Desktop 中的三個漏洞已於 4 月 28 日在 4.41.0 版本中修復。
- 修復了 CVE-2025-3224,該漏洞允許擁有使用者機器存取權的攻擊者在 Docker Desktop 更新時執行權限提升。
- 修復了 CVE-2025-4095,該漏洞導致在使用 MacOS 配置檔案時,未強制執行註冊表存取管理 (Registry Access Management, RAM) 策略,允許使用者從未經批准的註冊表拉取映像檔。
- 修復了 CVE-2025-3911,該漏洞允許擁有使用者機器讀取權的攻擊者從 Docker Desktop 日誌檔案中獲取敏感資訊,包括為運行中的容器配置的環境變數。
我們強烈建議您更新到 Docker Desktop 4.41.0。
Docker Desktop 4.34.2 安全性更新:CVE-2024-8695 和 CVE-2024-8696
上次更新日期:2024 年 9 月 13 日
由 Cure53 報告的兩個與 Docker Extensions 相關的 Docker Desktop 遠端程式碼執行 (RCE) 漏洞已於 9 月 12 日在 4.34.2 版本中修復。
- CVE-2024-8695:在 Docker Desktop 4.34.2 版本之前,惡意擴充功能可透過精心製作的擴充功能描述/變更日誌濫用遠端程式碼執行 (RCE) 漏洞。[嚴重]
- CVE-2024-8696:在 Docker Desktop 4.34.2 版本之前,惡意擴充功能可透過精心製作的擴充功能發布者 URL/額外 URL 濫用遠端程式碼執行 (RCE) 漏洞。[高嚴重性]
在擴充功能市集中未發現任何利用這些漏洞的現有擴充功能。Docker 團隊將密切監控並仔細審查任何發布新擴充功能的請求。
我們強烈建議您更新到 Docker Desktop 4.34.2。如果您無法及時更新,可以 停用 Docker Extensions 作為權宜之計。
當 SSO 實施時,CLI 密碼登入將棄用
上次更新日期:2024 年 7 月
當首次引入 SSO 強制執行時,Docker 提供了一個寬限期,以允許在透過 Docker CLI 驗證到 Docker Hub 時繼續使用密碼。這是為了讓組織更容易地使用 SSO 強制執行。建議配置 SSO 的管理員鼓勵使用 CLI 的使用者 切換到個人存取權杖 (Personal Access Tokens),以因應寬限期結束。
2024 年 9 月 16 日,寬限期將結束,當 SSO 強制執行時,密碼將無法再透過 Docker CLI 驗證到 Docker Hub。受影響的使用者需要切換到使用 PAT 以繼續登入。
在 Docker,我們希望為我們的開發人員和組織提供最安全的體驗,而這項棄用是朝著這個方向邁出的重要一步。
SOC 2 Type 2 證明與 ISO 27001 認證
上次更新日期:2024 年 6 月
Docker 欣然宣布,我們已獲得 SOC 2 Type 2 證明和 ISO 27001 認證,且沒有任何例外或重大不符合事項。
安全性是 Docker 營運的基礎支柱,它被融入到我們的整體使命和公司策略中。Docker 的產品對我們的使用者社群至關重要,而我們的 SOC 2 Type 2 證明和 ISO 27001 認證則證明了 Docker 對使用者群體持續的安全性承諾。
更多資訊請參閱部落格公告。
Docker 安全性建議:runc、BuildKit 和 Moby 中的多個漏洞
上次更新日期:2024 年 2 月 2 日
在 Docker,我們優先考慮軟體的安全性與完整性以及使用者的信任。Snyk Labs 的安全性研究人員在容器生態系統中識別並報告了四個安全性漏洞。其中一個漏洞 CVE-2024-21626 涉及 runc 容器執行環境,而另外三個則影響 BuildKit (CVE-2024-23651、CVE-2024-23652 和 CVE-2024-23653)。我們希望向我們的社群保證,我們的團隊與報告者和開源維護者合作,一直在努力協調和實施必要的補救措施。
我們致力於維護最高的安全性標準。我們已於 1 月 31 日發布了 runc、BuildKit 和 Moby 的修補版本,並於 2 月 1 日發布了 Docker Desktop 的更新,以解決這些漏洞。此外,我們最新的 BuildKit 和 Moby 版本還包含了針對 CVE-2024-23650 和 CVE-2024-24557 的修復,這些漏洞分別由獨立研究員和 Docker 內部研究計畫發現。
| 受影響的版本 | |
|---|---|
runc | <= 1.1.11 |
BuildKit | <= 0.12.4 |
Moby (Docker 引擎) | <= 25.0.1 和 <= 24.0.8 |
Docker Desktop | <= 4.27.0 |
如果我使用的是受影響的版本,該怎麼辦?
如果您正在使用受影響的 runc、BuildKit、Moby 或 Docker Desktop 版本,請務必更新到以下表格中連結的最新版本
如果您無法及時更新到未受影響的版本,請遵循以下最佳實踐來降低風險
- 僅使用受信任的 Docker 映像檔(例如 Docker 官方映像檔)。
- 不要從不受信任的來源或不受信任的 Dockerfile 建構 Docker 映像檔。
- 如果您是使用 Docker Desktop 的 Docker Business 客戶,且無法更新到 v4.27.1,請務必啟用 強化型 Docker Desktop 功能,例如:
- 增強型容器隔離 (Enhanced Container Isolation),可在從惡意映像檔運行容器時緩解 CVE-2024-21626 的影響。
- 映像檔存取管理 (Image Access Management) 和 註冊表存取管理 (Registry Access Management),這些功能讓組織能夠控制其使用者可以存取哪些映像檔和儲存庫。
- 針對 CVE-2024-23650、CVE-2024-23651、CVE-2024-23652 和 CVE-2024-23653,請避免使用來自不受信任來源的 BuildKit 前端。前端映像檔通常在 Dockerfile 中指定為 `#syntax` 行,或在使用 `buildctl build` 命令時使用 `--frontend` 旗標。
- 為緩解 CVE-2024-24557,請務必在建構映像檔時使用 BuildKit 或停用快取。從 CLI 可透過 `DOCKER_BUILDKIT=1` 環境變數(如果 buildx 外掛程式已安裝,Moby >= v23.0 的預設值)或 `--no-cache` 旗標來完成。如果您直接使用 HTTP API 或透過客戶端使用,可透過將 /build API 端點 的 `nocache` 設定為 `true` 或 `version` 設定為 `2` 來完成相同的操作。
技術細節與影響
CVE-2024-21626 (高嚴重性)
在 runc v1.1.11 及更早版本中,由於某些洩漏的檔案描述符,攻擊者可以透過使新產生的容器程序(來自 `runc exec`)在主機檔案系統命名空間中擁有工作目錄,或透過誘騙使用者運行惡意映像檔並允許容器程序透過 `runc run` 存取主機檔案系統來取得主機檔案系統的存取權。這些攻擊還可以修改為覆寫半任意主機二進位檔案,從而實現完全的容器逃逸。請注意,當使用高階執行環境(例如 Docker 或 Kubernetes)時,此漏洞可透過運行惡意容器映像檔而無需額外配置,或在啟動容器時傳遞特定的工作目錄選項來利用。在 Docker 的情況下,該漏洞也可以從 Dockerfile 內部利用。
此問題已在 runc v1.1.12 中修復。
CVE-2024-23651 (高嚴重性)
在 BuildKit <= v0.12.4 中,兩個並行運行並共享相同快取掛載(帶有子路徑)的惡意建構步驟可能導致競爭條件,從而使主機系統中的檔案可供建構容器存取。這只會在使用者嘗試建構惡意專案的 Dockerfile 時發生。
此問題已在 BuildKit v0.12.5 中修復。
CVE-2024-23652 (高嚴重性)
在 BuildKit <= v0.12.4 中,惡意 BuildKit 前端或使用 `RUN --mount` 的 Dockerfile 可能會欺騙用於移除為掛載點建立的空檔案的功能,使其移除容器外部主機系統上的檔案。這只會在使用者使用惡意 Dockerfile 時發生。
此問題已在 BuildKit v0.12.5 中修復。
CVE-2024-23653 (高嚴重性)
除了將容器作為建構步驟運行外,BuildKit 還提供了用於運行基於已建構映像檔的互動式容器的 API。在 BuildKit <= v0.12.4 中,可以使用這些 API 要求 BuildKit 運行具有提升權限的容器。通常,只有在 buildkitd 配置中啟用特殊 `security.insecure` 授權,並且發起建構請求的使用者也允許的情況下,才允許運行此類容器。
此問題已在 BuildKit v0.12.5 中修復。
CVE-2024-23650 (中嚴重性)
在 BuildKit <= v0.12.4 中,惡意 BuildKit 用戶端或前端可以製作一個請求,導致 BuildKit 守護程序因恐慌而崩潰。
此問題已在 BuildKit v0.12.5 中修復。
CVE-2024-24557 (中嚴重性)
在 Moby <= v25.0.1 和 <= v24.0.8 中,如果映像檔是從頭開始建構的,則傳統建構器快取系統容易受到快取中毒的影響。此外,某些指令的更改(最重要的是 `HEALTHCHECK` 和 `ONBUILD`)不會導致快取失效。了解使用者正在使用的 Dockerfile 的攻擊者可以透過讓他們拉取一個專門製作的映像檔來毒害其快取,該映像檔將被視為某些建構步驟的有效快取候選。
此問題已在 Moby >= v25.0.2 和 >= v24.0.9 中修復。
Docker 產品如何受影響?
Docker Desktop
Docker Desktop v4.27.0 及更早版本受到影響。Docker Desktop v4.27.1 已於 2 月 1 日發布,並包含了 runc、BuildKit 和 dockerd 二進位檔的補丁。除了更新到這個新版本之外,我們鼓勵所有 Docker 使用者仔細使用 Docker 映像檔和 Dockerfile,並確保您的建構中只使用受信任的內容。
一如既往,在更新之前,您應該檢查 Docker Desktop 對於您的作業系統(Windows、Linux、Mac)的系統要求,以確保完全相容性。
Docker Build Cloud
任何新的 Docker Build Cloud 建構器實例都將配置最新的 Docker Engine 和 BuildKit 版本,因此不會受到這些 CVE 的影響。更新也已推送到現有的 Docker Build Cloud 建構器。
沒有其他 Docker 產品受到這些漏洞的影響。
建議連結
- Runc
- BuildKit
- Moby
Text4Shell 漏洞 CVE-2022-42889
上次更新日期:2022 年 10 月
在廣受歡迎的 Apache Commons Text 函式庫中發現了 CVE-2022-42889 漏洞。此函式庫的版本(不包含 1.10.0)均受到此漏洞的影響。
我們強烈建議您更新到最新版本的 Apache Commons Text。
掃描 Docker Hub 上的映像檔
在 2021 年 10 月 21 日世界標準時間 12:00 之後觸發的 Docker Hub 安全性掃描現在可以正確識別 Text4Shell 漏洞 (CVE)。在此日期之前的掃描目前不反映此漏洞的狀態。因此,我們建議您透過將新映像檔推送到 Docker Hub 來觸發掃描,以查看漏洞報告中 Text4Shell 漏洞的狀態。有關詳細說明,請參閱掃描 Docker Hub 上的映像檔。
受 CVE-2022-42889 影響的 Docker 官方映像檔
許多 Docker 官方映像檔 包含易受攻擊的 Apache Commons Text 版本。以下列出了可能包含易受攻擊的 Apache Commons Text 版本的 Docker 官方映像檔:
我們已將這些映像檔中的 Apache Commons Text 更新到最新版本。其中一些映像檔可能因其他原因而不易受攻擊。我們建議您也查閱上游網站上發布的指南。
Log4j 2 漏洞 CVE-2021-44228
上次更新日期:2021 年 12 月
Log4j 2 中廣泛使用的 Java 日誌函式庫 Log4j 2 漏洞 CVE-2021-44228 允許遠端程式碼執行,通常從攻擊者容易取得的環境中進行。例如,在 Minecraft 伺服器中發現,該漏洞允許將指令輸入到聊天日誌中,然後這些指令會被發送到記錄器。這使其成為一個非常嚴重的漏洞,因為該日誌函式庫被廣泛使用,且可能很容易被利用。許多開源維護者正在努力修復和更新軟體生態系統。
Log4j 2 的易受攻擊版本包括 2.0 版到 2.14.1 版。第一個已修復版本是 2.15.0。如果可以,我們強烈建議您更新到最新版本。如果您使用的是 2.0 之前的版本,您也不會受到影響。
如果您正在使用這些版本,您可能不會受到攻擊,因為您的配置可能已經緩解了此問題,或者您記錄的內容可能不包含任何使用者輸入。然而,如果不詳細了解所有可能記錄的程式碼路徑以及它們可能從何處獲取輸入,這可能難以驗證。因此,您可能希望升級所有使用易受攻擊版本的程式碼。
CVE-2021-45046
作為 CVE-2021-44228 的更新,2.15.0 版本中的修復不完整。已識別出其他問題,並透過 CVE-2021-45046 和 CVE-2021-45105 進行追蹤。為了更完整地修復此漏洞,我們建議您盡可能更新到 2.17.0。
掃描 Docker Hub 上的映像檔
在 2021 年 12 月 13 日世界標準時間 17:00 之後觸發的 Docker Hub 安全性掃描現在可以正確識別 Log4j 2 漏洞 (CVE)。在此日期之前的掃描目前不反映此漏洞的狀態。因此,我們建議您透過將新映像檔推送到 Docker Hub 來觸發掃描,以查看漏洞報告中 Log4j 2 漏洞的狀態。有關詳細說明,請參閱掃描 Docker Hub 上的映像檔。
受 Log4j 2 漏洞影響的 Docker 官方映像檔
上次更新日期:2021 年 12 月
許多 Docker 官方映像檔 包含 Log4j 2 漏洞 CVE-2021-44228 的易受攻擊版本。下表列出了可能包含易受攻擊的 Log4j 2 版本的 Docker 官方映像檔。我們已將這些映像檔中的 Log4j 2 更新到最新版本。其中一些映像檔可能因其他原因而不易受攻擊。我們建議您也查閱上游網站上發布的指南。
| 儲存庫 | 已修補版本 | 其他文件 |
|---|---|---|
| couchbase | 7.0.3 | Couchbase 部落格 |
| Elasticsearch | 6.8.22, 7.16.2 | Elasticsearch 公告 |
| Flink | 1.11.6, 1.12.7, 1.13.5, 1.14.2 | Flink 針對 Log4j 漏洞的建議 |
| Geonetwork | 3.10.10 | Geonetwork GitHub 討論 |
| lightstreamer | 等待資訊 | 等待資訊 |
| logstash | 6.8.22, 7.16.2 | Elasticsearch 公告 |
| neo4j | 4.4.2 | Neo4j 公告 |
| solr | 8.11.1 | Solr 安全新聞 |
| sonarqube | 8.9.5, 9.2.2 | SonarQube 公告 |
| storm | 等待資訊 | 等待資訊 |
注意