CVE-2020-10749

前置知识

  • CAP_NET_RAW 权限:这是 Linux 的一项能力,允许进程构造任意数据包。Docker 默认赋予容器此权限,使得攻击者可以在容器内发送 IPv6 路由器通告。
  • IPv4 集群中的 IPv6 流量:虽然集群是 IPv4 的,但如果 DNS 返回了 AAAA(IPv6)记录,许多客户端库会优先尝试 IPv6 连接。
  • CNI 插件的错误配置:受影响版本的 ptpbridge 等 CNI 插件,没有在宿主机的 veth 接口上禁用 accept_ra(接受路由器通告)。这意味着宿主机信任了攻击者容器发来的伪造通告。

漏洞原理

ptpbridge 等插件在宿主机接口上未禁用 accept_ra,导致拥有 CAP_NET_RAW 权限的恶意容器可以发送伪造的 IPv6 路由器通告,将宿主机流量劫持到自身。即使集群是 IPv4 的,只要客户端优先尝试 IPv6,攻击者就能截获流量

漏洞复现

创建受害 pod 和攻击 pod

image-20260917133244402

受害容器初始化

image-20260917133311375

攻击容器初始化

image-20260917133356334

劫持前对照

image-20260917133422741

攻击准备

image-20260917133630854

发送伪造 RA

image-20260917133703112

验证受害者被"洗脑"

image-20260917133751308

劫持验证

image-20260917133812956

标签: none

添加新评论

邮箱仅用于识别回复,不会在页面公开。提交后请等待页面确认结果。

文章图片预览