Productos FTTH

Tienda FFTH desde 2004

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Fallo en el SDK de Google Vertex AI permitía secuestrar la subida de modelos mediante Bucket Squatting


Se detectó una vulnerabilidad en el SDK de Python de Vertex AI que permitía a atacantes secuestrar la carga de modelos de aprendizaje automático mediante el uso de nombres de buckets predecibles. Esto permitía ejecutar código malicioso en la infraestructura de Google y robar tokens de acceso y datos confidenciales. Google ya solucionó el problema y recomienda actualizar el SDK a la versión 1.148.0 o superior.







Un fallo en el SDK de Google Cloud Vertex AI para Python permitía que un atacante, sin tener acceso al proyecto de la víctima, secuestrara la carga del modelo de aprendizaje automático de la víctima y ejecutara código dentro de la infraestructura de servicio de Google.

Palo Alto Networks Unit 42, que encontró e informó el error a través del programa de recompensas por errores de Google (aquí), denomina a la técnica "Pickle in the Middle" y afirmó que no ha visto explotaciones reales. Google ya lo ha parcheado; si usas el SDK, actualiza a la versión 1.148.0 o posterior.

El atacante solo necesitaba un proyecto de Google Cloud propio y el ID del proyecto de la víctima, que a menudo es público. Sin credenciales, sin phishing y sin acceso previo al objetivo.

El fallo residía en cómo el SDK elegía un bucket temporal de Cloud Storage para las cargas de modelos. Si el usuario no configuraba un bucket, el SDK generaba un nombre predecible basado en el ID del proyecto y la región, como project-vertex-staging-region. El sistema comprobaba si el bucket existía, pero no si la víctima era la propietaria.

Dado que los nombres de los buckets son globales y únicos, un atacante podía crear el bucket esperado primero en su propio proyecto. El SDK de la víctima subiría entonces los archivos del modelo al bucket del atacante, quien podría sustituir el modelo cargado por uno malicioso.

Muchos modelos de ML en Python se guardan con pickle o joblib, que pueden ejecutar código al cargar un archivo. Cuando Vertex AI cargaba posteriormente el modelo intercambiado, el código del atacante se ejecutaba dentro del contenedor de servicio.

El ataque dependía de la velocidad. Unit 42 midió unos 2,5 segundos entre la carga de la víctima y la lectura del archivo por Vertex AI. En su prueba de concepto, el atacante usó una Cloud Function que se activaba tras la carga y sustituía el modelo en 1,4 segundos, antes de que Vertex AI lo leyera.

El payload robaba entonces un token OAuth del servidor de metadatos del contenedor de servicio y lo enviaba al atacante. En el entorno de prueba de Unit 42, ese token no se limitaba al despliegue comprometido. Podía acceder a otros artefactos de modelos en el mismo proyecto de inquilino gestionado por Google, incluyendo un modelo completo de TensorFlow con pesos entrenados, así como metadatos de BigQuery, listas de acceso, registros de inquilinos, nombres de clústeres GKE y rutas internas de imágenes de contenedores.



El ataque solo funcionaba bajo condiciones específicas: que el bucket de staging predeterminado de la víctima no existiera ya en esa región y que la víctima dejara el parámetro staging_bucket sin configurar. Lo primero es común para un proyecto nuevo en Vertex AI en una región.

Lo segundo depende de que el desarrollador confíe en el valor predeterminado del SDK en lugar de asignar su propio bucket.

Unit 42 informó del fallo a través del Programa de Recompensas 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 lanzó una corrección inicial en la v1.144.0 el 31 de marzo, añadiendo un uuid4 aleatorio al nombre del bucket. Completó la solución en la v1.148.0 el 15 de abril, añadiendo una verificación de propiedad del bucket para bloquear la apropiación de buckets en Model.upload(). Hasta la fecha de publicación, ni Unit 42 ni los boletines de seguridad de Vertex AI de Google han asignado un CVE al problema.

Recomendaciones de seguridad



Actualiza a la versión 1.148.0 o posterior para que la verificación de propiedad esté activa. Además, configura un staging_bucket explícito en una ubicación de Cloud Storage que tú controles al cargar modelos. Debido a que la lógica defectuosa reside en el SDK del cliente, comprueba la versión de google-cloud-aiplatform dondequiera que se ejecute, incluyendo notebooks, trabajos de CI y tuberías de entrenamiento, no solo en los servicios de producción.

Es el segundo fallo de nombres de buckets predecibles que sale a la luz en Vertex AI este año. Google parcheó el CVE-2026-2473 en febrero, un error independiente de apropiación de buckets en Vertex AI Experiments que también permitía la ejecución de código entre inquilinos, el robo de modelos y el envenenamiento de datos.

El trabajo anterior de Unit 42 sobre los permisos predeterminados del agente de servicio de Vertex AI rastreó una ruta relacionada desde un agente de IA desplegado hacia los datos del cliente y del inquilino.

Fuente:
THN

0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.