You need to enable JavaScript to run this app.
导航
Kubernetes 安全漏洞公告(CVE-2024-10220)
最近更新时间:2024.12.04 11:21:10首次发布时间:2024.11.22 16:23:28

安全漏洞 CVE-2024-10220 由 Kubernetes 社区披露,攻击者可以借助 gitRepo 的 Volume 利用此漏洞,拉取恶意 git repo,导致任意代码执行越权访问宿主机或执行二进制程序,详情请参见 CVE-2024-10220: Arbitrary command execution through gitRepo volume

漏洞级别

CVE-2024-10220 漏洞被评估为高危漏洞,在 CVSS 的评分为 8.1。

影响范围

  • 受影响的 kubelet 版本:kubelet <= v1.28.11
  • 受影响的 VKE 版本如下,查看版本信息相关操作,请参见 如何查看集群的 Kubernetes 版本
    • 节点 Kubernetes 版本 < v1.28.15-vke.18
    • 节点 Kubernetes 版本 < v1.26.15-vke.25
    • 节点 Kubernetes 版本 < v1.24.17-vke.37

漏洞影响

当使用的 VKE 版本在受影响的范围内时,若攻击者具有创建 Pod 权限且 gitRepo volume 可用时,攻击者可以拉取恶意 git repo,导致任意代码执行。更多详情,请参见 K8s gitRepo volume任意代码执行(CVE-2024-10220)

防范措施

利用准入控制器对使用 gitRepo volume 的 Pod 进行检测和拦截。

可以选择 Kyverno、OPA-gatekeeper、ValidatingAdmissionPolicy(Kubernetes v1.30 GA)等准入控制器和策略来禁止 Workloads 使用 GitRepo volume。

下面是一个使用 Kyverno 禁用 GitRepo volume 的 ClusterPolicy 供您参考。

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: disallow-gitrepo
spec:
  validationFailureAction: Enforce
  background: true
  rules:
  - name: check-for-gitrepo-volume
    match:
      any:
      - resources:
          kinds:
          - Pod
    validate:
      message: >-
        GitRepo volumes are forbidden. The fields spec.volumes[*].gitRepo must not be set.
      pattern:
        spec:
          =(volumes):
          - X(gitRepo): "null"

修复方案

  • 对于新建的 VKE 集群,不受该漏洞影响。
  • 对于受影响范围内的 VKE 集群节点,请 升级集群 到最新补丁版本。
  • 对于无法使用集群升级功能的用户,请 提交工单 获取技术支持,或采用防范措施。