Cloudanix VulnDB

CVE-2024-10220

High · 8.1

CVSS

8.1

EPSS

3.0%

Published

Nov 22, 2024

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

Attackers could run their own commands on servers running certain versions of Kubernetes by submitting specially made storage settings, potentially taking over parts of the system.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Low
Impact
Remote Code Execution
Component
Application
Class
RCE
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

The kubelet allows arbitrary command execution through specially crafted gitRepo volumes that abuse volume mounting to run attacker-controlled commands during pod initialization.

Why it matters to the business

Successful exploitation grants attackers control over Kubernetes worker nodes, enabling data theft, workload disruption, or lateral movement across clusters; urgency is moderate given low EPSS and lack of KEV listing despite broad ecosystem prevalence of affected kubelet versions.

How an attack unfolds

An attacker with permission to create pods supplies a malicious gitRepo volume definition that points to a repository containing commands executed by the kubelet during volume setup, achieving remote code execution without needing elevated privileges beyond pod creation rights.

How to fix it

Upgrade kubelet to versions 1.28.12 or later, 1.29.7 or later, or 1.30.3 or later; until upgrades are complete, restrict pod creation privileges and avoid use of gitRepo volumes in untrusted namespaces.

How to confirm the fix worked

Verify kubelet versions across nodes match or exceed the fixed releases; test by attempting to schedule a pod with a gitRepo volume on patched nodes and confirm no command execution occurs.

Typical attack path

  1. Obtain permissions to submit pod specifications to the cluster
  2. Craft a pod manifest containing a gitRepo volume with a malicious repository URL or branch that triggers command execution
  3. Submit the pod to a node running an affected kubelet version
  4. Kubelet processes the volume and executes the embedded commands on the host
  5. Attacker uses resulting shell access to pivot or persist within the cluster

How to detect it

Review Kubernetes audit logs for pod creations that include gitRepo volumes from unexpected repositories; inspect node process execution logs for git or shell activity triggered by volume mounts shortly after pod scheduling.

What your security team should do

  • Prioritize patching all nodes to fixed kubelet versions within standard change windows given the RCE nature
  • Audit RBAC policies to limit pod creation to trusted service accounts
  • Monitor for unusual gitRepo volume usage in pod specs via admission controllers or audit logs
  • Disable gitRepo volumes cluster-wide if the feature is not required

The record

The Kubernetes kubelet component allows arbitrary command execution via specially crafted gitRepo volumes.This issue affects kubelet: through 1.28.11, from 1.29.0 through 1.29.6, from 1.30.0 through 1.30.2.

Affected packages

Ecosystem Package Introduced Fixed
Go k8s.io/kubernetes 0 1.28.12
Go k8s.io/kubernetes 1.29.0 1.29.7
Go k8s.io/kubernetes 1.30.0 1.30.3
Chainguard argocd-image-updater 0 0.17.0-r1
Chainguard argocd-image-updater-compat 0 0.17.0-r1
Chainguard argocd-image-updater-fips 0 0.17.0-r2
Chainguard aws-efs-csi-driver 0 2.1.2-r0
Chainguard aws-efs-csi-driver-fips 0 2.1.2-r0
Chainguard gpu-feature-discovery 0 0.8.2-r6
Chainguard ip-masq-agent 0 2.12.0-r0
Chainguard kubeflow-pipelines 0 2.3.0-r3
Chainguard kubeflow-pipelines-apiserver 0 2.3.0-r3
Chainguard kubeflow-pipelines-cache-deployer 0 2.3.0-r3
Chainguard kubeflow-pipelines-cache-deployer-compat 0 2.3.0-r3
Chainguard kubeflow-pipelines-cache_server 0 2.3.0-r3
Chainguard kubeflow-pipelines-frontend 0 2.3.0-r3
Chainguard kubeflow-pipelines-metadata-envoy-config 0 2.3.0-r3
Chainguard kubeflow-pipelines-metadata-writer 0 2.3.0-r3
Chainguard kubeflow-pipelines-metadata-writer-compat 0 2.3.0-r3
Chainguard kubeflow-pipelines-persistence_agent 0 2.3.0-r3
Chainguard kubeflow-pipelines-scheduledworkflow 0 2.3.0-r3
Chainguard kubeflow-pipelines-viewer-crd-controller 0 2.3.0-r3
Chainguard kubernetes-dns-node-cache 0 1.23.1-r5
Chainguard kubernetes-dns-node-cache-fips 0 1.23.1-r4
Chainguard local-static-provisioner 0 2.7.0-r8
Chainguard local-static-provisioner-compat 0 2.7.0-r8
Chainguard local-static-provisioner-fips 0 2.7.0-r1
Chainguard local-static-provisioner-fips-compat 0 2.7.0-r1
Chainguard local-volume-node-cleanup 0 2.7.0-r8
Chainguard local-volume-node-cleanup-compat 0 2.7.0-r8
Chainguard local-volume-node-cleanup-fips 0 2.7.0-r1
Chainguard local-volume-node-cleanup-fips-compat 0 2.7.0-r1
Chainguard nodetaint 0 0.0.4-r23
Chainguard rancher-webhook-0.4 0 0.4.18-r2
Chainguard rancher-webhook-0.5 0 0.5.12-r4
Chainguard rancher-webhook-fips-0.4 0 0.4.18-r4
Chainguard rancher-webhook-fips-0.5 0 0.5.11-r0
Debian:11 kubernetes 0 1.20.5+really1.20.2-1
Debian:12 kubernetes 0 1.20.5+really1.20.2-1
Debian:13 kubernetes 0 1.20.5+really1.20.2-1
Mageia:9 kubernetes 0 1.27.16-2.mga9
Ubuntu:20.04:LTS kubernetes 0 No fix
Ubuntu:22.04:LTS kubernetes 0 No fix
Ubuntu:24.04:LTS kubernetes 0 No fix
Ubuntu:24.10 kubernetes 0 No fix
Ubuntu:Pro:20.04:LTS kubernetes 0 No fix
Wolfi argocd-image-updater 0 0.17.0-r1
Wolfi argocd-image-updater-compat 0 0.17.0-r1
Wolfi aws-efs-csi-driver 0 2.1.2-r0
Wolfi gpu-feature-discovery 0 0.8.2-r6
Wolfi ip-masq-agent 0 2.12.0-r0
Wolfi kubeflow-pipelines 0 2.3.0-r3
Wolfi kubeflow-pipelines-apiserver 0 2.3.0-r3
Wolfi kubeflow-pipelines-cache-deployer 0 2.3.0-r3
Wolfi kubeflow-pipelines-cache-deployer-compat 0 2.3.0-r3
Wolfi kubeflow-pipelines-cache_server 0 2.3.0-r3
Wolfi kubeflow-pipelines-frontend 0 2.3.0-r3
Wolfi kubeflow-pipelines-metadata-envoy-config 0 2.3.0-r3
Wolfi kubeflow-pipelines-metadata-writer 0 2.3.0-r3
Wolfi kubeflow-pipelines-metadata-writer-compat 0 2.3.0-r3
Wolfi kubeflow-pipelines-persistence_agent 0 2.3.0-r3
Wolfi kubeflow-pipelines-scheduledworkflow 0 2.3.0-r3
Wolfi kubeflow-pipelines-viewer-crd-controller 0 2.3.0-r3
Wolfi kubernetes-dns-node-cache 0 1.23.1-r5
Wolfi local-static-provisioner 0 2.7.0-r8
Wolfi local-static-provisioner-compat 0 2.7.0-r8
Wolfi local-volume-node-cleanup 0 2.7.0-r8
Wolfi local-volume-node-cleanup-compat 0 2.7.0-r8
Wolfi nodetaint 0 0.0.4-r23
Wolfi rancher-webhook-0.5 0 0.5.12-r4
go k8s.io/kubernetes 1.29.0 1.29.7
go k8s.io/kubernetes 1.30.0 1.30.3
openSUSE:Tumbleweed govulncheck-vulndb 0 0.0.20241209T183251-1.1

Related vulnerabilities