Running privileged containers in Kubernetes introduces serious security concerns. Privileged containers can access the host system almost without restriction, which violates container isolation principles and opens the door to cluster takeovers.
---
### Why It's Dangerous
Setting `privileged: true` gives a container:
- All Linux kernel capabilities
- Access to the host's devices
- The ability to modify the host filesystem
- Potential to escape the container and take over the host
These risks are explained in more depth in this article:
[Privileged Container Escape – Attack Vector](https://k8s-security.geek-kb.com/docs/attack_vectors/privileged_container_escape)
---
### How to Mitigate
1. Block Privileged Containers with Admission Controllers
Use policy engines like:
- [Kyverno](https://k8s-security.geek-kb.com/docs/best_practices/cluster_setup_and_hardening/api_server_security/kyverno)
- [OPA Gatekeeper](https://k8s-security.geek-kb.com/docs/best_practices/cluster_setup_and_hardening/api_server_security/opa_gatekeeper)
You can write policies that deny any workload with `privileged: true`.
---
2. Apply Pod Security Standards (PSS)
Kubernetes 1.25+ comes with a built-in [Pod Security Admission (PSA)](https://k8s-security.geek-kb.com/docs/best_practices/cluster_setup_and_hardening/pod_security/pod_security_standards) controller.
Use the `restricted` profile to prevent privileged containers and many other unsafe configurations at the namespace level.
---
3. Audit Your Cluster
Use tools to scan for security issues, including privilege escalations:
- [kubeaudit](https://k8s-security.geek-kb.com/docs/best_practices/cluster_setup_and_hardening/pod_security/kubeaudit)
- [kubescape](https://k8s-security.geek-kb.com/docs/best_practices/cluster_setup_and_hardening/configuration_validation/kubescape)
- [Polaris](https://k8s-security.geek-kb.com/docs/best_practices/cluster_setup_and_hardening/configuration_validation/polaris)
---
### Summary
Avoid using privileged containers unless absolutely necessary. If you must, isolate them in separate namespaces with tight controls. For most workloads, it’s better to enable specific capabilities rather than granting full privileges.
For more Kubernetes security content:
[K8s Security Knowledge Base](https://k8s-security.geek-kb.com/)