Kubernetes Vulnerability Allows Remote Code Execution on Windows Endpoints

The exploitation of a high-severity Kubernetes vulnerability can lead to arbitrary code execution with System privileges on all Windows endpoints in a cluster, Akamai warns.

The issue, tracked as CVE-2023-5528 and impacting default Kubernetes installations, exists in the way the open source container orchestration system processes YAML files, which it uses for virtually every function.

In some regards, the vulnerability is like CVE-2023-3676, a lack of sanitization in the subPath parameter in YAML files leading to code injection when creating pods with volumes.

While CVE-2023-3676 was identified in Kubernetes’ kubelet service’s processing of YAML files containing information on mounting a shared folder, CVE-2023-5528 occurs when creating a pod that includes a local volume, which allows for the mounting of disk partitions.

One of the functions the kubelet service reaches when creating such a pod creates a “symlink between the location of the volume on the node and the location inside the pod,” Akamai explains.

Because the function contains a cmd call, Windows’ command prompt supports command concatenation (to execute two or more commands after a special token), and an attacker can control one parameter in the cmd execution and inject arbitrary commands to be executed with the privileges of kubelet (System privileges).

The issue, however, only occurs when specifying or creating a persistentVolume, which is a type of storage resource that administrators can create to provision storage space in advance, and which will last after the pod’s lifetime.

“This is where the injection can be placed. An attacker can change the value of the “local.path” parameter inside the persistentVolume YAML file to add a malicious command that will be executed during the mounting process,” Akamai, which has published proof-of-concept (PoC) exploit code, says.

Advertisement. Scroll to continue reading.

To address the issue, Kubernetes removed the cmd call and replaced it with a native Go function that performs only the symlink operation.

All deployments of Kubernetes version 1.28.3 and prior that have Windows nodes in the cluster are vulnerable to CVE-2023-5528. Organizations are encouraged to upgrade to Kubernetes version 1.28.4.

“Since the issue lies within the source code, this threat will remain active and exploitation of it will likely increase — this is why we strongly advise patching your cluster even if it doesn’t have any Windows nodes,” Akamai says.

Related: Orca Flags Dangerous Google Kubernetes Engine Misconfiguration

Related: Vulnerabilities in Google Kubernetes Engine Could Allow Cluster Takeover

Related: Researchers Discover Dangerous Exposure of Sensitive Kubernetes Secrets

Source: Original Post


“An interesting youtube video that may be related to the article above”