Ubuntu 16.04 ESM:runC 漏洞 (USN-6088-2)

high Nessus 插件 ID 176257

简介

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

描述

远程 Ubuntu 16.04 ESM 主机上安装的多个程序包受到 USN-6088-2 公告中提及的多个漏洞影响。

- 1.0.0-rc9 及之前的 runc 版本含有导致权限提升的错误访问控制,此问题与 libcontainer/rootfs_linux.go 相关。要利用此问题,攻击者必须能够生成两个具有自定义 volume-mount 配置的容器,并且能够运行自定义图像。(此漏洞不会影响 Docker,因为实现的详细信息恰好阻挡了攻击。)(CVE-2019-19921)

- runc 是一款用于根据 OCI 规范在 Linux 上生成和运行容器的 CLI 工具。在 runc 中,netlink 在内部用作序列化系统,用于为代码的“C”部分指定相关的容器配置(负责容器的基础命名空间设置)。在 1.0.3 之前的所有 runc 版本中,编码器未处理字节数组属性类型的 16 位长度字段中发生整数溢出问题的可能性,这意味着足够大的恶意字节数组属性可能导致长度溢出,以及属性内容被解析为容器配置的 netlink 消息。此漏洞要求攻击者对容器配置有一定控制权,并允许攻击者通过简单添加自己的 netlink 负载(禁用所有命名空间)来绕过容器的命名空间限制。受影响的主要用户为允许具有不受信任配置的不受信任映像在其计算机上运行(例如共享云基础架构)的用户。 runc 1.0.3 版本包含针对此错误的补丁。其中一种变通方案是,尝试禁用容器中不受信任的命名空间路径。应注意,不受信任的命名空间路径将允许攻击者完全禁用命名空间保护(即使是不存在此错误的情况下)。(CVE-2021-43784)

- runc 是一款用于根据 OCI 规范在 Linux 上生成和运行容器的 CLI 工具。在低于 1.1.2 版本的 runc 中发现一个错误,其中 `runc exec --cap` 以非空、可继承的 Linux 进程功能创建了进程,从而创建非典型 Linux 环境,并使具有可继承文件功能的程序在 execve(2) 期间将这些功能提升至允许的集。此错误不影响容器安全沙盒,因为可继承集包含的功能绝不会多于容器边界集中包含的功能。此缺陷已在 runc 1.1.2 版中修复。此补丁更改了 `runc exec --cap` 行为,使得授予正在执行的进程的其他功能(通过 `--cap` 参数指定)不包括可继承的功能。此外,`runc spec` 已更改为不在创建的示例 OCI 规范 (`config.json`) 文件中设置任何可继承的功能。(CVE-2022-29162)

- runc 是一款用于根据 OCI 规范生成和运行容器的 CLI 工具。在受影响的版本中,无根 runc 使“/sys/fs/cgroup”可在下列条件下写入:1. 在用户命名空间中执行 runc,并且“config.json”未指定要取消共享的 cgroup 命名空间时(例如,“(docker|podman|nerdctl) run --cgroupns=host”,具有 Rootless Docker/ Podman/nerdctl)或 2. 在用户命名空间之外执行 runc,且“/sys”挂载了“rbind, ro”(例如“runc spec --rootless”;此情况非常少见)。容器可能会获得主机上用户拥有的 cgroup 层次“/sys/fs/cgroup/user.slice/...”的写入权限。其他用户的 cgroup 层次结构不受影响。
建议用户升级至版本 1.1.5。无法升级的用户可能取消共享 cgroup 命名空间 (“(docker|podman|nerdctl) run --cgroupns=private)”。这是 cgroup v2 主机上 Docker/Podman/nerdctl 的默认行为。或将“/sys/fs/cgroup”添加到“maskedPaths”。 (CVE-2023-25809)

- 1.1.4 及之前的 runc 版本含有导致权限提升的错误访问控制,此问题与 libcontainer/rootfs_linux.go 相关。要利用此问题,攻击者必须能够生成两个具有自定义 volume-mount 配置的容器,并且能够运行自定义图像。注意:存在此问题的原因是 CVE-2019-19921 回归。(CVE-2023-27561)

- runc 是一款用于根据 OCI 规范生成和运行容器的 CLI 工具。据发现,当容器内的“/proc”与特定挂载配置进行符号链接时,可绕过 AppArmor。通过禁止符号链接“/proc”,此问题已在 runc 1.1.5 版中修复。详情请参阅 PR #3785。我们建议用户进行升级。无法升级的用户应避免使用不受信任的容器映像。(CVE-2023-28642)

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

解决方案

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

另见

https://ubuntu.com/security/notices/USN-6088-2

插件详情

严重性: High

ID: 176257

文件名: ubuntu_USN-6088-2.nasl

版本: 1.1

类型: local

代理: unix

发布时间: 2023/5/23

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

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

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: Medium

基本分数: 6

时间分数: 4.7

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

CVSS 分数来源: CVE-2021-43784

CVSS v3

风险因素: High

基本分数: 7.8

时间分数: 7

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

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

CVSS 分数来源: CVE-2023-28642

漏洞信息

CPE: cpe:/o:canonical:ubuntu_linux:16.04:-:esm, p-cpe:/a:canonical:ubuntu_linux:golang-github-opencontainers-runc-dev, p-cpe:/a:canonical:ubuntu_linux:runc

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2023/5/23

漏洞发布日期: 2020/1/28

参考资料信息

CVE: CVE-2019-19921, CVE-2021-43784, CVE-2022-29162, CVE-2023-25809, CVE-2023-27561, CVE-2023-28642

USN: 6088-2