Recientemente se han descubierto tres vulnerabilidades en el entorno de ejecución de contenedores runC, utilizado por herramientas como Docker y Kubernetes. Estos problemas, identificados como CVE-2025-31133, CVE-2025-52565 y CVE-2025-52881, podrían permitir a un atacante eludir las restricciones de aislamiento y obtener acceso al sistema anfitrión.
Vulnerabilidades en runC
runC es un entorno de ejecución de contenedores universal y la implementación de referencia de la OCI (Open Container Initiative) para la ejecución de contenedores. Se encarga de operaciones de bajo nivel, como la creación del proceso del contenedor, la configuración de espacios de nombres, montajes y cgroups.
Las vulnerabilidades afectan a runC, permitiendo que un atacante obtenga acceso de escritura al host del contenedor con privilegios de administrador:
- CVE-2025-31133: runC utiliza montajes de enlace en /dev/null para ocultar archivos confidenciales del host. Si un atacante reemplaza /dev/null con un enlace simbólico durante la inicialización del contenedor, runC puede terminar montando un objetivo controlado por el atacante con permisos de lectura y escritura en el contenedor, lo que permite escribir en /proc y escapar del contenedor.
- CVE-2025-52565: El montaje de enlace en /dev/console puede redirigirse mediante condiciones de carrera o enlaces simbólicos, de modo que runC monte un objetivo inesperado en el contenedor antes de que se apliquen las protecciones. Esto, a su vez, puede exponer el acceso de escritura a entradas críticas de procfs y permitir fugas.
- CVE-2025-52881: runC puede ser engañado para realizar escrituras en /proc que se redirigen a objetivos controlados por el atacante. En algunas variantes, puede eludir las protecciones de reetiquetado de LSM y convierte las escrituras normales de runc en escrituras arbitrarias a archivos peligrosos como /proc/sysrq-trigger.
Las vulnerabilidades CVE-2025-31133 y CVE-2025-52881 afectan a todas las versiones de runC, mientras que la CVE-2025-52565 afecta a las versiones 1.0.0-rc3 y posteriores de runC. Las correcciones están disponibles en las versiones 1.2.8, 1.3.3, 1.4.0-rc.3 y posteriores de runC.
Explotabilidad y riesgo
Según investigadores de la empresa de seguridad en la nube Sysdig, «explotar las tres vulnerabilidades requiere la capacidad de iniciar contenedores con configuraciones de montaje personalizadas», lo cual un atacante puede lograr mediante imágenes de contenedor o Dockerfiles maliciosos.
Actualmente, no se han reportado casos de explotación activa de ninguna de estas vulnerabilidades. Sin embargo, en un aviso publicado esta semana, Sysdig indica que los intentos de explotar cualquiera de los tres problemas de seguridad pueden detectarse mediante el monitoreo de comportamientos sospechosos en enlaces simbólicos.
Los desarrolladores de runC también compartieron medidas de mitigación, que incluyen la activación de espacios de nombres de usuario para todos los contenedores sin mapear el usuario root del host al espacio de nombres del contenedor. Esta precaución debería bloquear las partes más importantes del ataque debido a los permisos DAC de Unix, que impedirían que los usuarios con espacios de nombres accedieran a los archivos relevantes.
Sysdig también recomienda usar contenedores sin privilegios de root, siempre que sea posible, para reducir el daño potencial derivado de la explotación de una vulnerabilidad.