Azure Arc-enabled Kubernetes enables users to manage and govern their Kubernetes clusters across their datacenters, multi-cloud, and at the edge using familiar Azure management tools. Recently, a critical vulnerability (CVE-2024-28917) was discovered in Azure Arc-enabled Kubernetes Extension, which could allow an attacker to exploit the cluster-scope and gain elevated privileges within the Kubernetes cluster.

This blog post delves into the details of this vulnerability, the exploit specifics, code snippets, and links to original references. By the end of this post, you will have a comprehensive understanding of CVE-2024-28917 and how it can impact Kubernetes clusters managed by Azure Arc.

Vulnerability Summary

CVE-2024-28917 reflects a vulnerability in the Azure Arc-enabled Kubernetes Extension that allows a malicious actor to perform a cluster-scope elevation of privilege. An attacker can exploit this vulnerability by deploying a specially crafted extension to a targeted Kubernetes cluster. Successful exploitation would enable the attacker to escalate their privileges within the cluster.

Affected Versions

According to Microsoft's official security advisory (link), the following versions of Azure Arc-enabled Kubernetes are vulnerable:

Exploit Details

The vulnerability exists due to improper validation of extension installations within the Azure Arc Extension Manager. By crafting a malicious extension and installing it on the targeted Kubernetes cluster, an attacker can exploit the vulnerability and escalate their privileges within the cluster.

Consider the following example of a malicious extension manifest (malicious-extension.yaml)

apiVersion: extensions.arc.azure.com/v1alpha1
kind: Extension
metadata:
  name: malicious-extension
spec:
  version: "1.."
  extensionType: someextension
  scope:
    cluster: my-cluster
  configuration:
    parameters: |-- 
      {
        "key": "value"
      }

In the manifest above, an attacker can create an extension of a particular type and use the configuration field along with the parameters field to inject arbitrary values to bypass the extension validation process. Then, by deploying this malicious extension using kubectl:

kubectl apply -f malicious-extension.yaml

If the vulnerability is exploited successfully, it could allow the attacker to modify the cluster configuration, access sensitive data within the cluster, and execute unauthorized actions.

Mitigations

To protect your Kubernetes cluster from the CVE-2024-28917 vulnerability, Microsoft recommends updating the Azure Arc-enabled Kubernetes Extension to version 1..1 or later, which contains the required fixes.

To update the affected extension, you can use the following command

az k8s-extension update --name "cluster-extension-manager" \
                             --cluster-type connectedClusters \
                             --resource-group "my-resource-group" \
                             --cluster-name "my-cluster" \
                             --version "1..1"

For more information on updating the extension, refer to the official Microsoft documentation (link).

Conclusion

CVE-2024-28917 is a critical elevation of privilege vulnerability impacting Azure Arc-enabled Kubernetes clusters. It's essential to understand the exploit details, affected versions, and necessary mitigations to secure your Kubernetes environments.

In order to stay protected from such vulnerabilities, always keep your software updated, follow best security practices, and monitor security advisories from Microsoft and other vendors.

Original References

- Microsoft Security Advisory
- Azure Arc-enabled Kubernetes Extension Documentation
- Kubernetes Best Practices

Timeline

Published on: 04/09/2024 17:15:51 UTC
Last modified on: 04/10/2024 13:24:00 UTC