云网牛站
所在位置:首页 > Linux安全 > 安装shadow或linux-pam的Alpine Linux Docker镜像有漏洞,附解决

安装shadow或linux-pam的Alpine Linux Docker镜像有漏洞,附解决

2019-05-16 09:10:41作者:linux人稿源:开源社区

只要你在 Alpine Linux 系统 Docker 镜像中安装有 shadow 或 linux-pam 软件包,那么这个镜像是有安全漏洞的,需要尽快修补,要说明的是,其他 Alpine Linux 系列不受这个漏洞影响,以下是详情和解决方法。

 

影响级别大

Alpine Linux Docker 镜像是一个十分小巧的镜像,大小仅 5MB,远小于其他的 Linux 发行版,在 Docker Hub 的下载次数已超过千万。

同时 Alpine Linux 发行版向来以轻巧和安全而被大家熟知,但最近思科安全研究人员却发现 Alpine Linux 的 Docker 镜像存在一个已有三年之久的安全漏洞,通过该漏洞可使用空密码登录 root 帐户。

该漏洞的编号为 CVE-2019-5021,严重程度评分为 9.8 分,最早在 Alpine Linux Docker 镜像 3.2 版本中被发现,并于2015年11月进行了修复,还添加了回归测试以防止将来再发生。

但后来为了简化回归测试,Alpine Linux Docker 镜像的 GitHub 仓库合并了一个新的 commit,而正是这个 commit 导致了错误的回归,并在 3.3 之后的版本中(包括 Alpine Docker Edge)都保留了这个漏洞,即:v3.5(EOL)、v3.4(EOL)、v3.3(EOL),目前该漏洞已被修复。

注:该问题已在 edge (20190228 snapshot)、v3.9.2、v3.8.4、v3.7.3、v3.6.5 版本的 Docker镜像(2019年3月7日)中修复。

 

漏洞说明

官方对这个漏洞的描述为:如果在 Docker 容器中安装了 shadow 软件包并以非 root 用户身份运行服务,那么具有 shell 访问权限的用户可在容器内对账号进行提权。密码以加密形式保存,但允许以 root 身份登录而无需输入任何密码:

安装shadow或linux-pam的Alpine Linux Docker镜像有漏洞,附解决

该漏洞仅针对 Alpine Linux 的 Docker 镜像版本,且安装了shadow 或 linux-pam 软件包才会受影响。

如果没有安装 shadow 或 linux-pam 软件包,则不会受到影响,如果你使用 Alpine linux 安装程序 setup-alpine,则不会受到影响。

 

专业说明

Alpine Linux 使用 busybox 作为核心工具,我们已经测试并确保只允许来自 /etc/securetty 中列为安全的 TTY 的无密码的 root 登录,这样就可以在计算机上启动 Alpine 并以 root 身份登录,而无需为 Alpine 提供任何预生成的密码,我们认为一个预生成的密码比没有密码更糟糕,像 sshd 这样的服务根本不允许使用空白密码登录,不幸的是,当用户安装 shadow 和 linux-pam,而不是使用默认工具时,安全问题出现了。

 

解决方法

对于使用较旧的、不受支持的版本,可以将以下命令添加到 Dockerfile 来修复漏洞:

# make sure root login is disabled

RUN sed -i -e 's/^root::/root:!:/' /etc/shadow

或者在 Alpine Linux 系统中卸载 shadow 或 linux-pam 软件包。当然,你没有安装 shadow 或 linux-pam 软件包,系统就不会有安全问题,这种情况下,不需要做处理。

 

相关主题

Alpine Linux 3.9.4发布下载,附更新介绍

精选文章
热门文章