Skip to main content

More Info:

Protect tuned kernel parameters from overriding kubelet default kernel parameter values.

Risk Level

High

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CIS EKS
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • Essential 8
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Manual Steps

  1. Edit the Kubelet config file on every worker node
    In the top-level YAML (same level as kind: / apiVersion:), add or set:
  2. (If also using kubelet flags) Edit the kubelet systemd drop-in on every worker node
    In the KUBELET_SYSTEM_PODS_ARGS (or the Environment=/ExecStart= line that holds kubelet flags), ensure this flag is present (or add it):
  3. Reload systemd and restart kubelet on every worker node
  4. Verify kubelet is running with protect-kernel-defaults enabled on each worker node
    Confirm that the output includes --protect-kernel-defaults=true.
kubectl cannot modify kubelet process flags or the kubelet config file on worker nodes, so this setting cannot be fixed via Kubernetes API objects. To remediate, you must change /var/lib/kubelet/config.yaml or the kubelet systemd unit on every worker node as described in the Manual Steps section.

Additional Reading: