The Kubernetes Controller Manager must create unique service accounts for each work payload.

STIG ID: CNTR-K8-000220  |  SRG: SRG-APP-000023-CTR-000055 |  Severity: high |  CCI: CCI-000015 |  Vulnerability Id: V-242381

Vulnerability Discussion

The Kubernetes Controller Manager is a background process that embeds core control loops regulating cluster system state through the API Server. Every process executed in a pod has an associated service account. By default, service accounts use the same credentials for authentication. Implementing the default settings poses a High risk to the Kubernetes Controller Manager. Setting the "--use-service-account-credential" value lowers the attack surface by generating unique service accounts settings for each controller instance.

Check

Change to the /etc/kubernetes/manifests directory on the Kubernetes Control Plane. Run the command:

grep -i use-service-account-credentials *

If the setting "--use-service-account-credentials" is not configured in the Kubernetes Controller Manager manifest file or it is set to "false", this is a finding.

Fix

Edit the Kubernetes Controller Manager manifest file in the /etc/kubernetes/manifests directory on the Kubernetes Control Plane.

Set the value of "--use-service-account-credentials" to "true".