OWASP Kubernetes Top 10 · 2022 (latest)

Kubernetes security risks

The OWASP Kubernetes Top 10 - the most common security risks in Kubernetes clusters.

K01: Insecure Workload Configurations is the first entry in the OWASP Kubernetes Top 10. It covers Pods, Deployments, DaemonSets, and every other workload that is admitted to a cluster with a securityContext (or pod spec) that hands an attacker an easy path to escalate.

Supply Chain Vulnerabilities (K02 in the OWASP Kubernetes Top 10) are the risks that enter a cluster through the artifacts it runs rather than through the cluster's own configuration. A Kubernetes workload is the end of a long assembly line: a base image, application code and its third-party dependencies, a build pipeline, a registry, a Helm chart or operator, and finally a manifest that pulls it all into a running Pod.

Role-Based Access Control (RBAC) is the primary authorization system in Kubernetes. Every request to the API server-whether it comes from a human with a kubeconfig, a controller, or a Pod using its mounted ServiceAccount token-is authenticated, then checked against a set of Roles and ClusterRoles bound to that identity.

Lack of Centralized Policy Enforcement is the absence of a consistent, automated control point that validates every workload against your security rules before it runs-and keeps validating as the cluster changes. Kubernetes will happily admit a container that runs as root, mounts the host filesystem, requests privileged: true, or pulls an unsigned image from an unknown registry.

Inadequate Logging and Monitoring (K05 in the OWASP Kubernetes Top 10) is the condition of running a cluster that cannot see itself being attacked. The controls that would record who did what to the API server, what processes ran inside containers, and which network flows crossed the cluster are either switched off, configured too coarsely, never collected centrally, or collected but never alerted on.

Broken Authentication Mechanisms (K06 in the OWASP Kubernetes Top 10) is the condition of running a cluster where the question "who is making this request? " is answered weakly, incompletely, or not at all.

Missing Network Segmentation Controls (K07 in the OWASP Kubernetes Top 10) is the failure to restrict which pods, namespaces, and external endpoints can talk to one another. By default, a Kubernetes cluster is a flat, fully-connected network: every pod can open a connection to every other pod, in every namespace, on every port - and, in most default installs, out to the internet and the cloud provider's metadata service as well.

Secrets Management Failures occur when sensitive material-database passwords, API keys, TLS private keys, cloud credentials, service-account tokens, signing keys-is created, stored, distributed, or consumed inside a Kubernetes cluster in a way that lets an unintended party read it. It is rarely a single dramatic bug.

Misconfigured Cluster Components is the risk that the machinery running Kubernetes itself-the control-plane and node processes-is deployed with insecure settings. Every cluster is held up by a small set of long-running components: the kube-apiserver, etcd, the kube-scheduler, the kube-controller-manager, and on every node the kubelet, kube-proxy, the container runtime, and cluster add-ons such as CoreDNS.

K10: Outdated and Vulnerable Kubernetes Components is the final entry in the OWASP Kubernetes Top 10. It covers a simple but stubborn failure: running Kubernetes itself, its add-ons, or the underlying node operating system and container runtime at versions that carry known, publicly documented vulnerabilities-or that have passed end-of-support and no longer receive security fixes at all.