Ubuntu 18.04 LTS / 20.04 LTS / 22.04 LTS:containerd 漏洞 (USN-5776-1)

high Nessus 插件 ID 168653

简介

远程 Ubuntu 主机缺少一个或多个安全更新。

描述

远程 Ubuntu 18.04 LTS / 20.04 LTS / 22.04 LTS / 22.10 主机上安装的程序包受到 USN-5776-1 公告中提及的多个漏洞的影响。

- containerd 是一个开源容器运行时。在 containerd 的 CRI 实现中发现一个缺陷,用户可在其中耗尽主机上的内存。在 CRI 流服务器中,如果请求 TTY,则会启动一个 go 例程来处理终端大小调整事件。如果用户的进程因错误命令等原因无法启动,则 go 例程将在没有接收器的情况下等待发送,从而导致内存泄漏。
Kubernetes 和 crictl 均可配置为使用 containerd 的 CRI 实现,流服务器尅用于处理容器 IO。此错误已在 containerd 1.6.12 和 1.5.16 中修复。用户应更新到这些版本以解决该问题。无法升级的用户应确保仅使用受信任的映像和命令,并且只有受信任的用户才有权限在运行中的容器中执行命令。(CVE-2022-23471)

- Moby 是 Docker 创建的开源项目,用于实现并加快软件容器化。在低于 20.10.14 版本的 Moby (Docker Engine) 中发现一个错误,其中容器以非空、可继承的 Linux 进程功能启动,从而创建非典型 Linux 环境,并使具有可继承文件功能的程序在 `execve(2)` 期间将这些功能提升至允许的集。通常,当可执行程序已指定允许的文件功能时,无特权用户和进程就可以执行这些程序并获得符合边界集规定的指定文件功能。由于存在这一错误,包含具有可继承文件功能的可执行程序的容器允许无特权用户和进程额外获得此类符合容器边界集规定的可继承文件功能。使用 Linux 用户和群组在容器内执行特权分离的容器受此错误的影响最大。此错误不影响容器安全沙盒,因为可继承集包含的功能绝不会多于容器边界集中包含的功能。此错误已在 Moby (Docker Engine) 中修复 20.10.14。您应当停止、删除并重新创建正在运行的容器,以便重置可继承功能。此补丁更改了 Moby (Docker Engine) 行为,以便在启动容器时创建更典型的 Linux 环境。有一种解决办法是,修改容器的入口点,以使用“capsh(1)”等实用工具,在主进程启动之前终止可继承功能。(CVE-2022-24769)

- imgcrypt 库为 containerd 提供 API 扩展以支持加密的容器映像,并实现 ctd-decoder 命令行工具以供 containerd 用于解密加密的容器映像。
imgcrypt 函数 `CheckAuthorization` 应该检查当前用户是否获权访问加密的映像,并防止该用户运行之前在同一系统上被其他用户解密的映像。在低于 1.1.4 的版本中,当使用具有 ManifestList 的映像并且本地主机的架构不是 ManifestList 中的第一个时会发生故障。仅测试了列表中的第一个架构,其可能没有其本地可用层,因为它无法在主机架构上运行。因此,对不可用层的判定是可以运行映像,但预期稍后会因层不可用而发生映像运行失败的情况。
但是,此判定允许镜像运行,这使得 ManifestList 中的其他架构无需提供之前已解密的映像,即可运行该映像。已对 imgcrypt 应用修补程序 1.1.4。变通方案可能包括为每个远程用户使用不同的命名空间。
(CVE-2022-24778)

- containerd 是一个开源容器运行时。在 containerd 的 CRI 实现中发现一个缺陷,即在“ExecSync”API 调用期间,容器内的程序可导致 containerd 后台程序无限制地消耗内存。这可能导致 containerd 消耗计算机上的所有可用内存,从而拒绝为其他合法工作负载提供服务。Kubernetes 和 crictl 均可配置为使用 containerd 的 CRI 实现;运行探测或通过 exec 设施执行进程时,可使用“ExecSync”。此错误已在 containerd 1.6.6 和 1.5.13 中修复。用户应更新到这些版本以解决该问题。无法升级的用户应确保仅使用受信任的图像和命令。 (CVE-2022-31030)

请注意,Nessus 尚未测试这些问题,而是只依靠应用程序自我报告的版本号来判断。

解决方案

更新受影响的 containerd 和/或 golang-github-containerd-containerd-dev 程序包。

另见

https://ubuntu.com/security/notices/USN-5776-1

插件详情

严重性: High

ID: 168653

文件名: ubuntu_USN-5776-1.nasl

版本: 1.5

类型: local

代理: unix

发布时间: 2022/12/13

最近更新时间: 2023/10/16

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

风险信息

VPR

风险因素: Medium

分数: 4.4

CVSS v2

风险因素: Medium

基本分数: 5

时间分数: 3.9

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

CVSS 分数来源: CVE-2022-24778

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

漏洞信息

CPE: cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:containerd, cpe:/o:canonical:ubuntu_linux:18.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:golang-github-containerd-containerd-dev, cpe:/o:canonical:ubuntu_linux:20.04:-:lts

必需的 KB 项: Host/cpu, Host/Ubuntu, Host/Ubuntu/release, Host/Debian/dpkg-l

可利用: true

易利用性: Exploits are available

补丁发布日期: 2022/12/13

漏洞发布日期: 2022/3/24

参考资料信息

CVE: CVE-2022-23471, CVE-2022-24769, CVE-2022-24778, CVE-2022-31030

USN: 5776-1