關於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型號會有區別。

相關文章
相關標籤/搜索