Check ID:
Provider: Kubernetes
Service:
Severity: MEDIUM
Categories:
Resource type:
kubelet_streaming_connection_timeoutProvider: Kubernetes
Service:
kubeletSeverity: MEDIUM
Categories:
node-securityResource type:
ConfigMapWhat this check verifies
Kubernetes Kubelet streaming sessions use a non-zero idle timeout viastreamingConnectionIdleTimeout for exec, logs, and port-forward connections.
Assesses whether this setting exists and is not 0.
Risk
With0 (no timeout), idle exec/logs/port-forward streams can persist, consuming sockets, file descriptors, and memory. This enables resource exhaustion and DoS, degrading node availability and potentially disrupting workload operations and administrative access.
Recommendation
Set a bounded, non-zerostreamingConnectionIdleTimeout aligned to operational needs; avoid 0.
Apply consistently across nodes, prefer fail-safe defaults, and monitor for unusually long streaming sessions. This supports defense in depth and preserves node availability.
Remediation
Dashboard steps- SSH to each Kubernetes node.
- If kubelet uses a config file, set a non-zero timeout:
- Find the path:
systemctl cat kubelet | grep -- --config= - Edit that file and add/update:
- Find the path:
- If no config file is used, add the flag to the kubelet service drop-in (e.g.,
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf) so the kubelet starts with: - Apply the change:
sudo systemctl daemon-reload && sudo systemctl restart kubelet
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_streaming_connection_timeout. 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