highCWE-269OWASP A05:2021

Contenedor Kubernetes Privilegiado

Tu pod de Kubernetes corre con securityContext.privileged: true, dándole al contenedor acceso completo al kernel del host y efectivamente evitando el aislamiento del contenedor.

Cómo Funciona

Un contenedor privilegiado corre con casi el mismo acceso que un proceso corriendo directamente en el host. Puede acceder a todos los dispositivos del host, modificar parámetros del kernel y escapar del contenedor para acceder al nodo subyacente. Si un atacante compromete un contenedor privilegiado (vía una vulnerabilidad en tu app), puede escapar al host y comprometer el nodo de Kubernetes completo y potencialmente todo el cluster.

Código Vulnerable
# MAL: spec de pod con contenedor privilegiado
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: app
    image: myapp:latest
    securityContext:
      privileged: true  # acceso completo al host — casi nunca es necesario
Código Seguro
# BIEN: contexto de seguridad mínimo, sin escalada de privilegios
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: app
    image: myapp:latest
    securityContext:
      privileged: false
      allowPrivilegeEscalation: false
      runAsNonRoot: true
      runAsUser: 1000
      readOnlyRootFilesystem: true

Ejemplo Real

Las vulnerabilidades de escape de contenedor (CVE-2019-5736 runc, CVE-2022-0185 kernel de Linux) son significativamente más explotables cuando los contenedores son privilegiados. En 2022, atacantes que comprometieron un contenedor privilegiado en un cluster de Kubernetes pudieron escapar al nodo en minutos, luego pivotar para acceder a secretos de otros pods vía el kubelet del nodo.

Cómo Prevenirlo

  • Nunca configures privileged: true a menos que tengas una razón específica y documentada (ej. ciertos plugins CNI, DaemonSets para monitoreo de nodo)
  • Configura allowPrivilegeEscalation: false y runAsNonRoot: true como valores por defecto para todos los contenedores
  • Usa Pod Security Admission (PSA) para forzar políticas baseline o restricted a nivel de cluster
  • Configura readOnlyRootFilesystem: true para prevenir que los atacantes escriban herramientas en el sistema de archivos del contenedor
  • Usa herramientas como kube-bench para auditar tu cluster contra el CIS Kubernetes Benchmark

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas