The Kubernetes Kubelet certificate authority file must have file permissions set to 644 or more restrictive.

STIG ID: CNTR-K8-003160  |  SRG: SRG-APP-000516-CTR-001325 |  Severity: medium |  CCI: CCI-000366 |  Vulnerability Id: V-242449

Vulnerability Discussion

The Kubernetes kubelet certificate authority file contains settings for the Kubernetes Node TLS certificate authority. Any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. If this file can be changed, the Kubernetes architecture could be compromised. The scheduler will implement the changes immediately. Many of the security settings within the document are implemented through this file.

Check

On the Control Plane, run the command:
ps -ef | grep kubelet

If the "--client-ca-file" option exists, this is a finding.

Note the path to the config file (identified by --config).

Run the command:
grep -i clientCAFile <path_to_config_file>

Note the path to the client ca file.

Run the command:
stat -c %a <path_to_client_ca_file>

If the client ca file has permissions more permissive than "644", this is a finding.

Fix

On the Control Plane, run the command:
ps -ef | grep kubelet

Remove the "--client-ca-file" option.

Note the path to the config file (identified by --config).

Run the command:
grep -i clientCAFile <path_to_config_file>

Note the path to the client ca file.

Run the command:
chmod 644 <path_to_client_ca_file>