Una falla en el SDK de Google Cloud Vertex AI para Python permitió a un atacante sin acceso al proyecto de una víctima secuestrar el modelo de aprendizaje automático de la víctima, cargar y ejecutar código dentro de la infraestructura de servicio de Google.
Unidad 42 de Palo Alto Networks, que encontró y reportado El error a través del programa de recompensas por errores de Google, llama a la técnica «Pepinillo en el medio» y dijo que no vio ninguna explotación en la naturaleza. Google lo ha parcheado; si usa el SDK, actualice a la versión 1.148.0 o posterior.
El atacante solo necesitaba un proyecto propio de Google Cloud y el ID del proyecto de la víctima, que suele ser público. Sin credenciales, sin phishing, sin punto de apoyo en el objetivo.
La falla estaba en cómo el SDK eligió un depósito temporal de Cloud Storage para la carga de modelos. Si un usuario no configuró un depósito, el SDK generó un nombre predecible a partir del ID del proyecto y la región, como región-ensayo-vértice-del-proyecto. Comprobó si ese cubo existía, pero no si la víctima era su propietario.
Debido a que los nombres de los depósitos son globalmente únicos, un atacante podría crear primero el depósito esperado en su propio proyecto. El SDK de la víctima luego cargaría los archivos del modelo en el depósito del atacante. Luego, el atacante podría reemplazar el modelo cargado por uno malicioso.
Muchos modelos de Python ML se guardan con conservar en vinagre o biblioteca de trabajoque puede ejecutar código cuando se carga un archivo. Cuando Vertex AI cargó más tarde el modelo intercambiado, el código del atacante se ejecutó dentro del contenedor de servicio.
El ataque dependía de la velocidad. La Unidad 42 midió aproximadamente 2,5 segundos entre la carga de la víctima y Vertex AI leyendo el archivo. En su prueba de concepto, el atacante utilizó una función en la nube que se activó después de la carga y reemplazó el modelo en 1,4 segundos, antes de que Vertex AI lo leyera.
Luego, la carga útil robó un token OAuth del servidor de metadatos del contenedor de servicio y lo envió al atacante. En el entorno de prueba de la Unidad 42, ese token no se limitó a la implementación comprometida. Podría acceder a otros artefactos del modelo en el mismo proyecto de inquilino administrado por Google, incluido un modelo TensorFlow completo con pesos entrenados, así como metadatos de BigQuery, listas de acceso, registros de inquilinos, nombres de clústeres de GKE y rutas de imágenes de contenedores internos.
El ataque solo funcionó bajo condiciones específicas: el depósito de preparación predeterminado de la víctima no existía aún en esa región y la víctima abandonó el cubo_puesta en escena parámetro desarmado. El primero es común para un nuevo proyecto en Vertex AI en una región.
El segundo depende de que el desarrollador confíe en el valor predeterminado del SDK en lugar de nombrar su propio depósito.
La Unidad 42 informó la falla a través del Programa de recompensa por vulnerabilidades de Google el 5 de marzo de 2026. Probó las versiones 1.139.0 y 1.140.0, las últimas disponibles en ese momento, y encontró que ambas eran vulnerables.
Google envió una solución inicial en v1.144.0 el 31 de marzo, agregando un uuid4 aleatorio al nombre del depósito. Completó la solución en v1.148.0 el 15 de abril, se agregó la verificación de propiedad del depósito para bloquear la okupación del depósito en Model.upload(). Al momento de su publicación, ni Unit 42 ni los boletines de seguridad Vertex AI de Google enumeran un CVE para el problema.
Actualice a 1.148.0 o posterior para que la verificación de propiedad esté activa. Además, establezca un staging_bucket explícito en una ubicación de Cloud Storage que controle al cargar modelos. Debido a que la lógica defectuosa reside en el SDK del cliente, verifique la versión de google-cloud-aiplatform dondequiera que se ejecute, incluidos los cuadernos, los trabajos de CI y los canales de capacitación, no solo los servicios de producción.
Es la segunda falla con nombre de depósito predecible que surge en Vertex AI este año. Google parcheado CVE-2026-2473 en febrero, un error separado en Vertex AI Experiments que también permitió la ejecución de código entre inquilinos, el robo de modelos y el envenenamiento.
El trabajo anterior de la Unidad 42 sobre los permisos de agente de servicio predeterminados de Vertex AI trazó una ruta relacionada desde un agente de IA implementado hasta los datos de clientes e inquilinos.





