【漏洞通告】runc容器逃逸漏洞(CVE-2024-21626)

發布時間 2024-02-02

 

一、漏洞概述

漏洞名稱

 runc容器逃逸漏洞

CVE   ID

CVE-2024-21626

漏洞類型

容器逃逸

發現時間

2024-02-01

漏洞評分

8.6

漏洞等級

高危

攻擊向量

本地

所需權限

利用難度

用戶交互

需要

PoC/EXP

未公開

在野利用

未發現

 

2024年2月1日,啟明星辰VSRC監測到互聯網上披露多個核心容器基礎設施組件中發現了4個漏洞(CVE-2024-21626、CVE-2024-23651、CVE-2024-23652 和 CVE-2024-23653),這些漏洞被稱為Leaky Vessels,影響了Runc和BuildKit,威脅者可利用這些漏洞獲得對底層主機操作系統的未授權訪問。

runc 是一種 CLI 工具,用于根據 OCI 規范在 Linux 上生成和運行容器。runc的使用非常靈活,可以與各種容器工具和平臺集成,如Docker、Kubernetes等。其中CVE-2024-21626涉及runc,runc 1.1.11及之前版本中,由于內部文件描述符泄漏,本地威脅者可以通過多種方式實現容器逃逸:威脅者可以通過使新生成的容器進程(來自runc exec)在主機文件系統命名空間中擁有一個工作目錄,或誘使特權用戶運行惡意鏡像并允許容器進程通過 runc run 訪問主機文件系統,從而獲得對主機文件系統的訪問權限。這些攻擊還可用于覆蓋半任意主機二進制文件,從而實現容器逃逸。

BuildKit 是Docker官方社區推出的下一代鏡像構建組件,可以更加快速、有效、安全地構建docker 鏡像。Moby是Docker創建的一個開源項目,旨在實現軟件容器化。BuildKi和Moby中還存在如下多個漏洞:

CVE-2024-23651:該漏洞的CVSS評分為8.7,在 BuildKit <= v0.12.4 中,并行運行的兩個惡意構建步驟與子路徑共享相同的緩存掛載可能會導致競爭條件,從而導致構建容器可以訪問主機系統中的文件。只有當用戶試圖構建惡意項目的Dockerfile時,才會發生這種情況。

CVE-2024-23652:該漏洞的CVSS評分為10.0,在 BuildKit <= v0.12.4 中,使用 RUN --mount 的惡意 BuildKit 前端或 Dockerfile 可能會欺騙刪除為掛載點創建的空文件的功能,從而從主機系統中刪除容器外的文件。只有當用戶使用惡意 Dockerfile 時才會發生這種情況。

CVE-2024-23653:該漏洞的CVSS評分為9.8。除了作為構建步驟運行容器外,BuildKit 還提供了基于構建鏡像運行交互式容器的 API。在 BuildKit <= v0.12.4 中,可以使用這些 API 來要求 BuildKit 以提升的權限運行容器。通常,只有在 buildkitd 配置啟用了 security.insecure 權限,并且初始化構建請求的用戶允許的情況下,才允許運行此類容器。

CVE-2024-23650(中危):在 BuildKit <= v0.12.4 中,惡意 BuildKit 客戶端或前端可制作一個請求,導致 BuildKit 守護進程因恐慌而崩潰。

CVE-2024-24557(中危):在 Moby <= v25.0.1 和 <= v24.0.8 中,如果鏡像是從頭構建的,經典的構建器緩存系統很容易出現緩存中毒。

 

二、影響范圍

Runc <= 1.1.11

BuildKit <= 0.12.4

Moby (Docker Engine)<= 25.0.1 和<= 24.0.8

Docker Desktop <= 4.27.0

Containerd < 1.6.28

 

 

三、安全措施

3.1 升級版本

目前部分容器基礎設已經修復了這些漏洞,受影響用戶可升級到以下版本:

Runc >= 1.1.12

BuildKit >= 0.12.5

Moby (Docker Engine) >= 25.0.2 和 >= 24.0.9

Docker Desktop >= 4.27.1

Containerd >= 1.6.28

下載鏈接:

https://snyk.io/blog/leaky-vessels-docker-runc-container-breakout-vulnerabilities/

3.2 臨時措施

如無法升級到修復版本,可遵循以下最佳實踐來降低風險:

l  僅使用受信任的 Docker 鏡像(例如Docker 官方鏡像)。

l  不要從不受信任的來源或不受信任的 Dockerfile 構建 Docker 鏡像。

l  如果是使用 Docker Desktop 的 Docker Business 客戶,并且無法在 v4.27.1 發布后立即更新到該版本,請確保啟用 Hardened Docker Desktop 功能,例如:

ü  增強的容器隔離(Enhanced Container Isolation),可在從惡意鏡像運行容器的情況下減輕CVE-2024-21626的影響。

ü  鏡像訪問管理和注冊表訪問管理,可讓企業控制用戶可以訪問哪些鏡像和存儲庫。

l  對于 CVE-2024-23650、CVE-2024-23651、CVE-2024-23652 和 CVE-2024-23653,請避免使用來自不受信任來源的BuildKit 前端。前端鏡像通常在 Dockerfile 的 #syntax 行中指定,或在使用 buildctl build 命令時使用 --frontend 標志指定。

l  要緩解 CVE-2024-24557 的影響,請確保在構建鏡像時使用 BuildKit 或禁用緩存。


3.3 通用建議

l  定期更新系統補丁,減少系統漏洞,提升服務器的安全性。

l  加強系統和網絡的訪問控制,修改防火墻策略,關閉非必要的應用端口或服務,減少將危險服務(如SSH、RDP等)暴露到公網,減少攻擊面。

l  使用企業級安全產品,提升企業的網絡安全性能。

l  加強系統用戶和權限管理,啟用多因素認證機制和最小權限原則,用戶和軟件權限應保持在最低限度。

l  啟用強密碼策略并設置為定期修改。

3.4 參考鏈接

https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv

https://snyk.io/blog/leaky-vessels-docker-runc-container-breakout-vulnerabilities/

https://snyk.io/blog/cve-2024-21626-runc-process-cwd-container-breakout/

https://www.docker.com/blog/docker-security-advisory-multiple-vulnerabilities-in-runc-buildkit-and-moby/

 


四、版本信息

版本

日期

備注

V1.0

2024-02-02

首次發布

 


五、附錄

5.1 公司簡介

啟明星辰成立于1996年,是由留美博士嚴望佳女士創建的、擁有完全自主知識產權的信息安全高科技企業。是國內最具實力的信息安全產品、安全服務解決方案的領航企業之一。

公司總部位于北京市中關村軟件園啟明星辰大廈,公司員工6000余人,研發團隊1200余人, 技術服務團隊1300余人。在全國各省、市、自治區設立分支機構六十多個,擁有覆蓋全國的銷售體系、渠道體系和技術支持體系。公司于2010年6月23日在深圳中小板掛牌上市。(股票代碼:002439)

多年來,啟明星辰致力于提供具有國際競爭力的自主創新的安全產品和最佳實踐服務,幫助客戶全面提升其IT基礎設施的安全性和生產效能,為打造和提升國際化的民族信息安全產業領軍品牌而不懈努力。

5.2 關于我們

啟明星辰安全應急響應中心已發布1000多個漏洞通告和風險預警,我們將持續跟蹤全球最新的網絡安全事件和漏洞,為企業的信息安全保駕護航。

關注我們:

image.png