关于runc漏洞CVE-2019-5736的修复公告

Docker、containerd或者其余基于runc的容器在运行时存在安全漏洞,攻击者能够经过特定的容器镜像或者exec操做获取到宿主机runc执行时的文件句柄并修改掉runc的二进制文件,从而获取到宿主机的root执行权限。docker

更多漏洞CVE-2019-5736的详细信息,请参见https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5736。ubuntu

阿里云容器服务已修复该runc漏洞。安全

影响范围less

  • 对于阿里云容器服务而言,影响范围以下:Docker版本 < 18.09.2 的全部Docker Swarm集群和Kubernetes集群(不包含Serverless Kubernetes集群)curl

  • 对于用户自建的Docker/Kubernetes环境而言,影响范围以下:Docker版本 < 18.09.2 或者使用 runc版本 <= 1.0-rc6的环境。请自行根据厂商建议进行修复。测试

解决方法阿里云

  • 新建Kubernetes1.11或1.12集群。容器服务新建立的1.11或1.12版本的Kubernetes集群已经包含修复该漏洞的Docker版本。url

  • 升级Docker。升级已有集群的Docker到18.09.2或以上版本。该方案会致使容器和业务中断。get

  • 仅升级runc(针对Docker版本17.06)。为避免升级Docker引擎形成的业务中断,能够按照如下步骤,逐一升级集群节点上的runc二进制。it

    i 执行如下命令定位docker-runc。docker-runc一般位于/usr/bin/docker-runc路径下

            which docker-runc

     ii 执行如下命令备份原有的runc:

           mv /usr/bin/docker-runc /usr/bin/docker-runc.orig.$(date -Iseconds)

     iii 执行如下命令下载修复的runc:

          curl -o /usr/bin/docker-runc -sSL https://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/runc/docker-runc-17.06-amd64

     iv   执行如下命令设置docker-runc的可执行权限:

          chmod +x /usr/bin/docker-runc

    v    执行如下命令测试runc是否能够正常工做:

          docker-runc -v

         # runc version 1.0.0-rc3

        # commit: fc48a25bde6fb041aae0977111ad8141ff396438

        # spec: 1.0.0-rc5

        docker run -it --rm ubuntu echo OK

    vi 若是是GPU的节点,还须要完成如下步骤额外安装下nvidia-runtime。

        # 找到nvidia-container-runtime的位置,通常状况下在: /usr/bin/nvidia-container-runtime

         which nvidia-container-runtime

       # 备份原有的nvidia-container-runtime

         mv /usr/bin/nvidia-container-runtime /usr/bin/nvidia-container-runtime.orig.$(date -Iseconds)

        # 下载修复的nvidia-container-runtime

        curl -o /usr/bin/nvidia-container-runtime -sSL https://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/runc/nvidia-container-runtime-17.06-amd64

       # 设置它的可执行权限

        chmod +x /usr/bin/nvidia-container-runtime

       # 测试nvidia-container-runtime能够正常工做

        nvidia-container-runtime -v

        # runc version 1.0.0-rc3

        # commit: fc48a25bde6fb041aae0977111ad8141ff396438-dirty

       # spec: 1.0.0-rc5

       docker run -it --rm -e NVIDIA_VISIBLE_DEVICES=all ubuntu nvidia-smi -L

      # GPU 0: Tesla P100-PCIE-16GB (UUID: GPU-122e199c-9aa6-5063-0fd2-da009017e6dc)

       # 本测试运行在GPU P100机型中,不一样GPU型号会有区别。

相关文章
相关标签/搜索