Amazon Linux 2:docker (ALASECS-2024-042)

critical Nessus Plugin ID 206635

概要

遠端 Amazon Linux 2 主機缺少安全性更新。

說明

遠端主機上安裝的 docker 版本為要比 25.0.6-1 舊。因此,會受到 ALAS2ECS-2024-042 公告中所提及的多個弱點影響。

跟隨 HTTP 重新導向至不符合子網域的網域或不完全符合初始網域的網域時,http.Client 不會轉送敏感標頭,例如 Authorization 或 Cookie。例如,從 foo.com 重新導向至 www.foo.com 會轉送授權標頭,但重新導向至 bar.com 則不會。惡意的特質 HTTP 重新導向可導致意外轉送敏感標頭。(CVE-2023-45289)

在解除封送某些形式的無效 JSON 時,protojson.Unmarshal 函式會進入無限迴圈。將資料解除封送為含有 google.protobuf.Any 值的訊息時,或在設定 UnmarshalOptions.DiscardUnknown 選項時,便會發生此情形。(CVE-2024-24786)

多種 Is 方法 (IsPrivate、IsLoopback 等) 並未如預期地針對 IPv4 對應的 IPv6 位址運作,這導致會在傳統 IPv4 表單中傳回 true 的位址傳回 false。
(CVE-2024-24790)

Moby 是一種開放原始碼容器架構,是 Docker Engine、Docker Desktop 和其他容器工具或執行階段發行版本的重要元件。Moby 的網路實作允許定義許多網路,每個網路可設定各自的 IP 位址範圍和閘道。此功能常稱為自訂網路,因為每個網路可有不同的驅動程式、參數集及行為。建立網路時,「--internal」標記用於將網路指定為 _internal_。
docker-compose.yml 檔案中的「internal」屬性也可用來將網路標記為 _internal_,且其他 API 用戶端也可指定「internal」參數。

建立具有網路功能的容器時,系統會指派唯一的網路介面和 IP 位址。
主機作為非內部網路的路由器,其閘道 IP 可提供往來容器 IP 的 SNAT/DNAT。

由於未設定預設路由,且防火牆規則設為中斷所有傳出流量,內部網路中的容器可相互通訊,但無法與主機可存取的網路 (LAN 或 WAN) 通訊。此外,也可與閘道 IP 位址 (及適當設定的主機服務) 進行通訊,且主機可直接與任何容器 IP 進行通訊。

「dockerd」除了設定 Linux 核心的多種網路功能以啟用容器網路之外,還直接提供某些服務給容器網路。它主要是發揮解析器的功用,可啟用服務探索,以及透過上游解析器解析名稱。

收到名稱與容器不相符的 DNS 要求時,系統會將要求轉送至已設定的上游解析器。此要求從容器的網路命名空間發出:存取層級和流量轉送都和直接從容器發出要求一樣。

由於採用此設計,僅附加到內部網路的容器將無法透過上游解析器解析名稱,這是因為容器本身無法與該名稱伺服器通訊。只能解析也附加至內部網路的容器名稱。

許多系統執行本機轉送 DNS 解析器。由於主機和所有容器都有獨立的回送裝置,上述設計會導致容器無法透過主機所設定的解析器解析名稱,這是因為它們無法到達主機回送裝置上的這些位址。為了解決此問題,並讓容器即便在將本機轉送解析器用於回送位址時也能妥善解析名稱,「dockerd」會偵測此情況,並改為從主機 namework 命名空間轉送 DNS 要求。然後,回送解析器會如預期將要求轉送至已設定的上游解析器。

由於 `dockerd` 會將 DNS 要求轉送至主機回送裝置,完全忽略容器網路命名空間的正常轉送語意,因此內部網路可能會意外將 DNS 要求轉送至外部名稱伺服器。攻擊者可為所掌控的名稱伺服器註冊網域,藉此利用所入侵的容器在 DNS 查詢中將資料進行編碼,最終透過名稱伺服器取得解碼的資料。

Docker Desktop 一律會在 RFC 1918 位址上執行內部解析器,因此不會受到影響。

Moby 26.0.0、25.0.4 和 23.0.11 版已經過修補,可避免從內部網路轉送 DNS 要求。您可以改為使用自訂上游位址執行預定單獨附加至內部網路的容器,這會強制從容器的網路命名空間解析所有上游 DNS 查詢 (CVE-2024-29018)。

AWS 已註意到 CVE-2024-41110,這是 Amazon Linux 的 docker 套件中會影響 Moby 開放原始碼專案的問題。Docker 是包含數個開放原始碼容器管理系統的元件。

此問題不會影響 docker 伺服器的預設設定。如果啟用了授權外掛程式,則針對 docker 程序特製的 API 要求將被轉送至授權外掛程式,其轉送方式可能導致權限提升等非預期動作。啟用授權外掛程式是非典型設定。在預設、典型或建議的設定中,受影響的 API 端點不會洩漏給網路。預設的 EKS 和 ECS 設定不會將 API 端點洩漏給網路。使用 ECS 時,不支援啟用 docker 授權外掛程式。最後,docker 未安裝在比 1.24 新的 EKS AMI 上。雖然 docker 已安裝在 EKS 1.24 和更舊版本中,但 EKS 不支援授權外掛程式。

為解決問題而更新的 docker 套件適用於 Amazon Linux 2 (docker-20.10.25-1.amzn2.0.5 和 docker-25.0.6-1.amzn2.0.1) 和 Amazon Linux 2023 (docker-25.0.6-1amzn2023.0.1)。AWS 建議使用 docker 的客戶升級至這些版本或更新版本。(CVE-2024-41110)

Tenable 已直接從所測試產品的安全公告擷取前置描述區塊。

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

執行「yum update docker」以更新系統。

另請參閱

https://alas.aws.amazon.com/AL2/ALASECS-2024-042.html

https://alas.aws.amazon.com/cve/html/CVE-2023-45289.html

https://alas.aws.amazon.com/cve/html/CVE-2024-24786.html

https://alas.aws.amazon.com/cve/html/CVE-2024-24790.html

https://alas.aws.amazon.com/cve/html/CVE-2024-29018.html

https://alas.aws.amazon.com/cve/html/CVE-2024-41110.html

https://alas.aws.amazon.com/faqs.html

Plugin 詳細資訊

嚴重性: Critical

ID: 206635

檔案名稱: al2_ALASECS-2024-042.nasl

版本: 1.2

類型: local

代理程式: unix

已發布: 2024/9/5

已更新: 2024/9/6

支援的感應器: Agentless Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, Nessus

風險資訊

VPR

風險因素: Critical

分數: 9.9

CVSS v2

風險因素: Critical

基本分數: 10

時間分數: 7.8

媒介: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS 評分資料來源: CVE-2024-24790

CVSS v3

風險因素: Critical

基本分數: 9.8

時間分數: 8.8

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

時間媒介: CVSS:3.0/E:P/RL:O/RC:C

弱點資訊

CPE: p-cpe:/a:amazon:linux:docker, cpe:/o:amazon:linux:2, p-cpe:/a:amazon:linux:docker-debuginfo

必要的 KB 項目: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2024/8/27

弱點發布日期: 2024/2/29

參考資訊

CVE: CVE-2023-45289, CVE-2024-24786, CVE-2024-24790, CVE-2024-29018, CVE-2024-41110

IAVA: 2024-A-0438

IAVB: 2024-B-0020-S, 2024-B-0071