Amazon Linux 2:docker (ALASDOCKER-2024-040)

high Nessus 插件 ID 204943

简介

远程 Amazon Linux 2 主机缺少安全更新。

描述

远程主机上安装的 docker 版本低于 25.0.6-1。因此,该软件受到 ALAS2DOCKER-2024-040 公告中提及的多个漏洞影响。

2025-01-04:已将 CVE-2024-36620 添加到此公告中。

2025-01-04:已将 CVE-2024-36623 添加到此公告中。

2024-08-27:已将 CVE-2024-29018 添加到此公告中。

2024-08-27:已将 CVE-2024-24786 添加到此公告中。

protojson.Unmarshal 函数在取消封送某些形式的无效 JSON 时会进入无限循环。当解封为包含 google.protobuf.Any 值的消息,或当设置 UnmarshalOptions.DiscardUnknown 选项时,会发生此情况。(CVE-2024-24786)

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 通信。

除了配置 Linux 内核的多种网络功能以启用容器网络之外,“dockerd”还直接向容器网络提供某些服务。其中主要提供的服务为解析器,从而启用服务发现,并解析来自上游解析器的名称。

收到针对名称与容器不符的 DNS 请求时,系统会将该请求转发到已配置的上游解析器。系统将此请求从容器的网络命名空间发出:流量的访问和路由级别与容器本身发出的请求相同。

由于此设计,仅附加到内部网络的容器将无法使用上游解析器解析名称,因为容器本身无法与该名称服务器通信。只能解析同样附加到内部网络的容器的名称。

许多系统运行本地转发 DNS 解析器。由于主机和容器具有单独的环回设备,上述设计的后果是容器无法从主机配置的解析器中解析名称,因为它们无法访问主机环回设备上的这些地址。为填补此漏洞,并允许容器正确解析名称(即使环回地址上使用了本地转发解析器),“dockerd”会检测此情况,并改为从主机名称工作命名空间转发 DNS 请求。然后,环回解析器按预期将请求转发到其配置的上游解析器。

由于“dockerd”将 DNS 请求转发到主机环回设备从而完全绕过容器网络命名空间的正常路由语义,因此内部网络可能将 DNS 请求意外转发到外部名称服务器。攻击者可注册其控制权威名称服务器的域,方法是在最终将由其名称服务器应答的 DNS 查询中进行编码,从而安排遭入侵的容器泄露数据。

Docker Desktop 不受影响,因为 Docker Desktop 始终在 RFC 1918 地址上运行内部解析器。

已修补 Moby 版本 26.0.0、25.0.4 和 23.0.11,可防止转发来自内部网络的任何 DNS 请求。相关变通方案是,运行预期仅附加到具有自定义上游地址的内部网络的容器,这将强制从容器的网络命名空间中解析所有上游 DNS 查询。(CVE-2024-29018)

moby v25.0.0 - v26.0.2 易受通过 daemon/images/image_history.go 造成的空指针取消引用影响。
(CVE-2024-36620)

moby v25.0.3 的 streamformatter 程序包中存在一个争用条件漏洞,可用于触发多个并发写入操作,导致数据损坏或应用程序崩溃。
(CVE-2024-36623)

AWS 发现 CVE-2024-41110,这是 Amazon Linux 的 docker 程序包中会影响 Moby 开源项目的问题。Docker 是包含多个开源容器管理系统的组件。

此问题不影响 docker 的默认配置。如果启用了授权插件,则针对 docker 后台程序特别构建的 API 请求将被转发到授权插件,其转发方式可能导致特权提升等非预期操作。启用授权插件是一种非典型配置。受影响的 API 端点不会泄露给默认、典型或建议配置中的网络。默认 EKS 和 ECS 配置不会将 API 端点泄露给网络。如果使用的是 ECS,则不支持启用 docker 授权插件。最后,在高于 1.24 的 EKS AMI 上未安装 docker。尽管 EKS 1.24 及更早版本中已安装 docker,但 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/ALASDOCKER-2024-040.html

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

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

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

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

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

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

插件详情

严重性: High

ID: 204943

文件名: al2_ALASDOCKER-2024-040.nasl

版本: 1.10

类型: local

代理: unix

发布时间: 2024/8/1

最近更新时间: 2025/4/10

支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, Nessus

风险信息

VPR

风险因素: Critical

分数: 9.2

CVSS v2

风险因素: High

基本分数: 9

时间分数: 7

矢量: CVSS2#AV:N/AC:L/Au:S/C:C/I:C/A:C

CVSS 分数来源: CVE-2024-41110

CVSS v3

风险因素: High

基本分数: 7.5

时间分数: 6.7

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

时间矢量: CVSS:3.0/E:P/RL:O/RC:C

CVSS 分数来源: CVE-2024-29018

漏洞信息

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

必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

可利用: true

易利用性: Exploits are available

补丁发布日期: 2024/7/29

漏洞发布日期: 2024/7/23

参考资料信息

CVE: CVE-2024-24786, CVE-2024-29018, CVE-2024-36620, CVE-2024-36623, CVE-2024-41110

IAVA: 2024-A-0438-S