Docker Tag Latest
Usar FROM image:latest significa que un nuevo pull puede cambiar silenciosamente tu imagen base, rompiendo la reproducibilidad y potencialmente introduciendo vulnerabilidades.
Cómo Funciona
:latest resuelve a lo que el registro considera actual al momento del pull. Una nueva versión mayor de Node.js, un SO base cambiado o una imagen comprometida publicada como :latest puede cambiar tu build sin ningún cambio de código.
# MAL: el tag latest no está fijado — cambia sin aviso
FROM node:latest
FROM postgres:latest# BIEN: fija a una etiqueta de versión específica para reproducibilidad completa
FROM node:20.11.1-alpine3.19
FROM postgres:16.2-alpine3.19Ejemplo Real
En 2020, el mantenedor de una imagen base popular de Docker Hub publicó cambios que rompían compatibilidad en :latest. Miles de builds de CI que dependían de ella fallaron simultáneamente. Más críticamente, un :latest comprometido podría silenciosamente distribuir malware a todos los usuarios downstream.
Cómo Prevenirlo
- Fija las imágenes base a etiquetas de versión específicas (node:20.11.1-alpine3.19, no node:latest)
- Para máxima seguridad, fija al digest de la imagen (FROM node@sha256:abc123...) que es inmutable
- Usa Dependabot o Renovate para actualizar automáticamente las versiones de imágenes fijadas con PRs revisados
- Prefiere imágenes base mínimas (alpine, distroless) para reducir la superficie de ataque
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Docker Corriendo como Root
mediumLos contenedores que corren como root dan a cualquier vulnerabilidad de ejecución de código acceso root inmediato al contenedor — y potencialmente al host.
Secrets en Dockerfile
criticalLos secrets agregados via ENV, ARG o COPY .env en un Dockerfile quedan grabados en las capas de la imagen y son legibles por cualquiera que descargue la imagen.
Puertos Expuestos Innecesarios
lowHacer EXPOSE de puertos que tu aplicación no usa realmente aumenta la superficie de ataque sin ningún beneficio.
Sin Health Check en Docker
lowSin una instrucción HEALTHCHECK, Docker y los orquestadores no pueden detectar cuando tu contenedor está corriendo pero roto — enrutando tráfico a una app muerta.