Docker 镜像漏洞 (CVE-2019-5021)

CVE-2019-5021

问题是什么?

如果你的 Docker 容器中安装了 shadow 软件包,并且以非 root 用户身份运行你的服务,那么攻击者(通过一个不相关的安全漏洞入侵了你的系统,或者一个拥有 shell 访问权限的用户)可能将其权限提升至容器内的 root 权限。

谁会受到影响?

此问题仅影响 Docker 镜像。如果你使用了 Alpine Linux 安装程序 setup-alpine,则不受影响。

除非你安装了 shadowlinux-pam 软件包,否则你不会受到影响。

此问题已在以下 修复,并在以下 Docker 镜像版本 中发布 (2019 年 3 月 7 日)

以下版本已停止维护 (EOL) 且仍然存在漏洞

如何修复?

请确保你使用受支持的发行版本并更新你的镜像。

如果你使用任何较旧的、不受支持的发行版本,则可以通过在你的 Dockerfile 中添加以下行来修复它

    # make sure root login is disabled
    RUN sed -i -e 's/^root::/root:!:/' /etc/shadow

或者,你可以确保你没有安装 linux-pam

这是如何发生的?

Alpine 使用 busybox 作为核心工具。我们已经测试并确保只有在 /etc/securetty 中列为安全的 TTY 才能允许无密码 root 登录。这使得在机器上启动 Alpine 并以 root 身份登录成为可能,而无需发布任何预先生成的、众所周知的 Alpine 密码。我们认为预先生成的、众所周知的密码比根本没有密码更糟糕。

sshd 这样的服务完全不允许使用空白密码登录。

不幸的是,我们忽略了用户安装 shadowlinux-pam 而不是使用默认工具的情况。

编辑:已添加修复版本的发布日期