Check ID:
Provider: Kubernetes
Service:
Severity: MEDIUM
Categories:
Resource type:
kubelet_disable_read_only_portProvider: Kubernetes
Service:
kubeletSeverity: MEDIUM
Categories:
cluster-security, node-securityResource type:
ConfigMapWhat this check verifies
Kubernetes Kubelet configuration is inspected for thereadOnlyPort setting and whether it is set to 0 to disable the unauthenticated HTTP endpoint.
Risk
An open kubelet read-only port allows unauthenticated queries to node and pod metadata and metrics, causing information disclosure. Attackers can map workloads, discover endpoints, and prepare lateral movement, undermining confidentiality and enabling targeted exploitation of weak configurations.Recommendation
Disable the unauthenticated endpoint by settingreadOnlyPort: 0.
Apply least privilege: expose only the TLS-authenticated kubelet endpoint, enforce authorization, and restrict network access to kubelet with host firewalls or network policies. Monitor nodes for unexpected open ports.
Remediation
Dashboard steps- Edit the kubelet configuration ConfigMap: run
kubectl -n kube-system edit configmap/<example_resource_name>(e.g., kubelet-config-1.xx) - In the data entry that contains the KubeletConfiguration YAML, add or set this top-level line:
- Save and exit
- Restart kubelet on each node to apply:
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 = kubelet_disable_read_only_port. 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