重磅!Alpine docker镜像爆空root密码漏洞
发布时间:
2020-02-05 10:31
Alpine Linux的docke镜像仅仅5M左右,是较为受欢迎的基础镜像包,其下载次数已经超过1000万。docker官方提供的镜像绝大部分都是基于Alpine制作。上周爆出了影响Alpine Docker镜像的CVE-2019-5021漏洞。该漏洞是由“root”用户密码为空引起的,默认情况下,该密码在版本3.3或更高版本的Alpine Docker映像上设置为空。该漏洞在2015年被发现且被修复过,但是当年底的一次回归测试又使该漏洞重见天日,导致3.3以后的版本包含该漏洞。
若使用有该漏洞的Alpine镜像,且使用Linux PAM或使用shadow文件作为身份验证库的容器,非root用户可以绕过身份验证并在容器内获得root访问权限。
如何验证镜像是否存在该漏洞?
验证你的镜像是否包含该漏洞非常简单,进入正在运行的容器,并执行如下命令:
$ cat /etc/passwd | grep root
如果是如下的输出,就是包含漏洞的镜像:
root:::0:::::
有漏洞的Alpine镜像的root帐户中的第二个字段为空。这意味着密码设置为NULL。
如果输出结果如下,表示该漏洞不存在或者被修复:
root:!::0:::::
Alpine无漏洞镜像root的密码设置为“!”,这表示root用户不能用于登录系统。
如何修复该漏洞
此问题已在以下Docker镜像版本中修复:
edge (20190228 snapshot)
v3.9.2
v3.8.4
v3.7.3
v3.6.5
版本V3.3、V3.4、V3.5是仍然容易受到攻击,没有可用的修复程序。
具体参考:https://github.com/docker-library/official-images/pull/5516(2019年3月7日)
建议把基于Alpine的镜像更新到新版本。镜界容器安全产品已经可以检测该漏洞并提供修复建议。