近日Containerd社區披露了CRI實現中的漏洞,在調用ExecSync API時,容器內的程式可以不受約束地消耗記憶體,從而導致Containerd消耗容器所在節點的所有可用記憶體,完成DoS攻擊。在K8s Probe和容器Lifecycle Hooks中的exec機制均可觸發該攻擊。
CVE-2022-31030漏洞被評估為中危漏洞。
公告首次發布:2022年07月05日
公告更新發布:2025年05月19日,最佳化關於影響範圍的描述。
影響範圍
以下枚舉的Containerd版本均在該漏洞影響範圍內:
≤v1.5.12
v1.6.0~v1.6.5
Containerd社區在以下版本中修複了該漏洞:
v1.5.13
v1.6.6
說明
該漏洞隻影響使用Containerd運行時節點池中的節點。
關於漏洞的詳細資料,請參見CVE-2022-31030。
防範措施
參考如下方案及時升級叢集存量節點Containerd版本,同時嚴格控制非受信人員的應用部署許可權。
通過
kubectl drain命令,排水掉目前需要升級的節點。通過
systemctl stop kubelet命令,停止節點的kubelet服務。通過
systemctl stop containerd命令,停止節點的Containerd服務。安裝最新的Containerd的RPM包。
通過
systemctl start containerd命令,啟動Containerd服務。通過
systemctl start kubelet命令,啟動kubelet服務。該節點升級完成,使用
kubectl uncordon將節點恢複到可調度狀態。如還需繼續升級其他節點,回到第2步繼續升級其他節點。