Skip to main content

More Info:

Verifies that the controller manager —profiling argument is set to false so detailed profiling data is not exposed to potential attackers.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS Kubernetes

Triage and Remediation

Remediation

Manual Steps

  1. On every control plane node, open the kube-controller-manager static pod manifest for editing:
  2. In the spec.containers[0].command (or args) list, add or update the profiling flag so it is explicitly disabled:
    Ensure there is no other --profiling= entry with a different value.
  3. Save the file and exit the editor. The kube-controller-manager static pod will be automatically restarted by the kubelet because the manifest under /etc/kubernetes/manifests changed. Be aware this briefly restarts the controller manager on this control plane node.
  4. Repeat steps 1–3 on every control plane node that has a /etc/kubernetes/manifests/kube-controller-manager.yaml file.
  5. After the controller manager has restarted on a node, verify that profiling is disabled by inspecting the running process on that node:
    Confirm the output includes --profiling=false and does not include --profiling=true or a bare --profiling flag.
kubectl cannot change the --profiling flag for the controller manager because it is configured via the static pod manifest on each control plane node at /etc/kubernetes/manifests/kube-controller-manager.yaml. To remediate this finding, follow the guidance in the Manual Steps section on each control plane node.