
# Docker Engine输入验证错误漏洞公告（CVE-2020-13401）
#### 漏洞详情
CVE-2020-13401漏洞源于IPv6动态分配除提供了IPv6的DHCP技术外，还支持Router Advertisement技术。路由器会定期向节点通告网络状态，包括路由记录。客户端会通过NDP进行自身网络配置。本文介绍该漏洞的影响。
表1漏洞信息 
| 漏洞类型   | CVE-ID                                                                          | 漏洞级别 | 披露/发现时间    |
|:---|:---|:---|:---|
| 输入验证错误 | [CVE-2020-13401](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-13401) | 中    | 2020-06-01 |
   
#### 漏洞影响
对操作系统中启用了IPv6并且容器网络的CNI Plugins小于V0.8.6版本的节点有影响。
恶意攻击者可以篡改主机上其他容器或主机本身的IPv6路由记录，实现中间人攻击。即使现在系统或者服务上没有直接使用IPv6地址进行网络请求通知，但是如果DNS返回了A(IPv4)和AAAA(IPv6)记录，许多HTTP库都会尝试IPv6进行连接，如果再回退到IPv4，这为攻击者提供了响应的机会。该漏洞为中危漏洞，CVSS评分为6.0。
Kubernetes本身不受该漏洞影响，但Kubernetes所使用的CNI插件（请参阅<https://github.com/containernetworking/plugins/pull/484>）会受影响，以下kubelet版本都包含了受影响的CNI插件服务：
- kubelet v1.18.0\~v1.18.3
- kubelet v1.17.0\~v1.17.6
- kubelet\<v1.16.11
 
#### 漏洞修复方案
- 修改主机内核参数配置net.ipv6.conf.all.accept_ra值为0，以拒绝接收IPv6路由发布。
- 业务容器结合使用TLS和适当的证书验证，防止中间人欺骗。
- 禁止在Pod中设置CAP_NET_RAW能力，防止恶意容器篡改IPv6路由：
  ```
  securityContext:
        capabilities:
          drop: ["NET_RAW"]
  ```
  
 
