
# Docker资源管理错误漏洞公告（CVE-2021-21285）
#### 漏洞详情
Docker是一款开源的应用容器运行时，支持在Linux系统上创建一个容器（轻量级虚拟机）并部署和运行应用程序，以及通过配置文件实现应用程序的自动化安装、部署和升级。 Docker 19.03.15和20.10.3之前的版本存在资源管理错误漏洞，攻击者可以利用该漏洞导致dockerd守护进程崩溃。
表1漏洞信息 
| 漏洞类型   | CVE-ID                                                                      | 漏洞级别 | 披露/发现时间    |
|:---|:---|:---|:---|
| 资源管理错误 | [CVE-2021-21285](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-21285) | 中    | 2021-02-02 |
   
#### 漏洞影响
docker daemon组件在拉取镜像的过程中没有对镜像层digest进行有效性校验，拉取一个被恶意损坏的镜像可能会导致docker daemon崩溃。
该漏洞可能在以下场景触发：
- 在集群内的节点上手动docker pull一个被恶意损坏的镜像。
- 部署工作负载时负载模板中定义了一个被恶意损坏的镜像，kubelet自动拉取镜像时触发。
该漏洞的影响范围如下：
- 若镜像被恶意损坏，拉取镜像时可能会导致docker daemon崩溃。
- 使用容器镜像服务（SWR）时，如果您的镜像是通过在SWR获取的，上传到镜像仓库的镜像会进行digest校验，此场景不受影响。
- 该漏洞不会影响运行中的容器。
 
#### 判断方法
1. 如果节点是EulerOS和CentOS，可以用如需命令查看安全包版本：
   ```
   rpm -qa |grep docker
   ```
   
2. 使用EulerOS或者CentOS的节点，docker版本低于**18.09.0.100.51.h10.51.h3-1.h15.eulerosv2r7**的docker包涉及该CVE漏洞。
3. 使用其它非EulerOS和CentOS的镜像（如Ubuntu），可以使用docker version查看docker版本。若版本低于19.03.15、20.10.3，则涉及该漏洞。
 
#### 漏洞修复方案
不使用未知来源的镜像，推荐使用容器镜像服务SWR。
#### 相关链接
目前厂商已发布升级补丁以修复漏洞，补丁获取链接：<https://github.com/moby/moby/commit/8d3179546e79065adefa67cc697c09d0ab137d30>
