漏洞CVE-2022-31030公告

近日Containerd社区披露了CRI实现中的漏洞,在调用ExecSync API时,容器内的程序可以不受约束地消耗内存,从而导致Containerd消耗容器所在节点的所有可用内存,完成DoS攻击。在K8s Probe和容器Lifecycle Hooks中的exec机制均可触发该攻击。

CVE-2022-31030漏洞被评估为中危漏洞。

公告首次发布:20220705
公告更新发布:20250519日,优化关于影响范围的描述。

影响范围

以下枚举的Containerd版本均在该漏洞影响范围内:

  • ≤v1.5.12

  • v1.6.0~v1.6.5

Containerd社区在以下版本中修复了该漏洞:

  • v1.5.13

  • v1.6.6

说明

该漏洞只影响使用Containerd运行时节点池中的节点。

关于漏洞的详细信息,请参见CVE-2022-31030

防范措施

参考如下方案及时升级集群存量节点Containerd版本,同时严格控制非受信人员的应用部署权限。

  1. 通过kubectl drain命令,排水掉目前需要升级的节点。

  2. 通过systemctl stop kubelet命令,停止节点的kubelet服务。

  3. 通过systemctl stop containerd命令,停止节点的Containerd服务。

  4. 安装最新的ContainerdRPM包。

  5. 通过systemctl start containerd命令,启动Containerd服务。

  6. 通过systemctl start kubelet命令,启动kubelet服务。

  7. 该节点升级完成,使用kubectl uncordon将节点恢复到可调度状态。

  8. 如还需继续升级其他节点,回到2继续升级其他节点。