安全文章

重磅!Alpine docker镜像爆空root密码漏洞

2020-02-05 北京小佑科技有限公司

0.png

    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的镜像更新到最新版本。镜界容器安全产品已经可以检测该漏洞并提供修复建议。