Check ID:
Provider: Kubernetes
Service:
Severity: MEDIUM
Categories:
Resource type:
scheduler_profilingProvider: Kubernetes
Service:
schedulerSeverity: MEDIUM
Categories:
cluster-securityResource type:
PodWhat this check verifies
Kubernetes Scheduler profiling configuration, specifically whether scheduler containers run with--profiling=false to keep the profiling API disabled.
Risk
With profiling enabled, the pprof endpoints can expose runtime internals (stack traces, memory, goroutines), aiding reconnaissance and credential discovery, harming confidentiality. Extra CPU/heap usage can be abused for DoS, impacting availability.Recommendation
Disable by default: set--profiling=false on the Scheduler.
If profiling is required, enable it only temporarily, restrict access with network policies, bind to loopback, and log/monitor usage. Apply least privilege and defense in depth to limit exposure.
Remediation
Dashboard steps- SSH to the control-plane node
- Edit the scheduler manifest:
sudo vi /etc/kubernetes/manifests/kube-scheduler.yaml - In
spec.containers[].command, add this flag (or change existing to false): - Save the file; kubelet will automatically restart the scheduler with profiling disabled
References
Where this check fires
This check runs on every scheduled scan against your Kubernetes account. Findings appear at Cloud Security → Findings filterable byCheck ID = scheduler_profiling. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Kubernetes checks