Docker Engine输入验证错误漏洞公告(CVE-2020-13401)
漏洞详情
CVE-2020-13401漏洞源于IPv6动态分配除提供了IPv6的DHCP技术外,还支持Router Advertisement技术。路由器会定期向节点通告网络状态,包括路由记录。客户端会通过NDP进行自身网络配置。本文介绍该漏洞的影响。
漏洞类型 |
CVE-ID |
漏洞级别 |
披露/发现时间 |
---|---|---|---|
输入验证错误 |
中 |
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"]