Las imágenes de este artículo han sido generadas con inteligencia artificial. Cómo publicamos
Un fallo en el SDK de Python de Google Cloud Vertex AI permitió que un atacante sin credenciales ni acceso previo al proyecto de la víctima secuestrara la carga de un modelo y ejecutara código en la infraestructura de serving de Google. Palo Alto Networks Unit 42 bautizó la técnica como "Pickle in the Middle" y notificó el problema a Google; el fabricante ya ha parcheado el SDK, pero la incidencia deja lecciones importantes sobre riesgos de diseño y prácticas inseguras en pipelines de machine learning.
La raíz técnica fue simple y peligrosa: cuando el SDK necesitaba un bucket temporal para subir artefactos de modelo y el usuario no especificaba uno, generaba un nombre predecible a partir del ID del proyecto y la región —por ejemplo project-vertex-staging-region— y verificaba únicamente si existía, no si el bucket pertenecía al proyecto del usuario. Como los nombres de buckets son globalmente únicos, un atacante con su propio proyecto podía crear primero ese bucket y esperar la subida de la víctima. El atacante entonces reemplazaba el contenido subido por un artefacto malicioso. Dado que muchos modelos Python se serializan con pickle o joblib —formatos que ejecutan código al deserializar—, cuando Vertex AI cargaba ese modelo el payload del atacante se ejecutaba dentro del contenedor de serving.

La explotación dependía de una ventana de tiempo (TOCTOU): Unit 42 midió un intervalo de aproximadamente 2,5 segundos entre la subida y la lectura por Vertex AI; en su prueba de concepto un Cloud Function reemplazó el objeto en 1,4 segundos y el payload robó un token OAuth desde el servidor de metadatos del contenedor, enviándolo al atacante. Ese token, en el entorno de prueba, tenía permisos más amplios que la simple instancia comprometida: permitió acceder a otros artefactos en el tenant gestionado por Google, incluyendo modelos completos, metadatos de BigQuery, listas de acceso, logs y rutas internas de imágenes de contenedor. Es decir, la explotación podía derivar en ejecución remota de código, robo de modelos y movimiento lateral dentro del tenant.
El vector funcionó solo si concurrían dos condiciones comunes: que el bucket por defecto de staging no existiera en la región (situación habitual en proyectos nuevos) y que el desarrollador no hubiera establecido explícitamente el parámetro staging_bucket. Unit 42 reportó la vulnerabilidad el 5 de marzo de 2026; Google lanzó un arreglo inicial (aleatorizando el nombre con uuid4) y completó la corrección añadiendo una verificación de propiedad del bucket en Model.upload() en la versión 1.148.0 del paquete.
Las implicaciones para equipos de ML y seguridad son amplias: más allá de la pérdida de propiedad intelectual (modelos robados o envenenados), la técnica destaca cómo decisiones de diseño en clientes y defaults inseguros pueden convertirse en vectores de escalada sin phishing ni exploits complejos. También subraya el riesgo de formatos de serialización inseguros en entornos multi-tenant y la necesidad de políticas que eviten la creación de recursos previsibles que puedan ser aprovechados por un competidor o un atacante externo.
Acciones inmediatas recomendadas: actualice el SDK a la versión parcheada con el comando pip (por ejemplo pip install --upgrade google-cloud-aiplatform>=1.148.0) y, muy importante, defina siempre explícitamente staging_bucket como una ubicación de Cloud Storage que usted controle. Compruebe la versión de google-cloud-aiplatform dondequiera que se ejecute: notebooks, CI/CD, pipelines de entrenamiento y entornos de prueba, no solo en producción. Si sospecha que pudo haber exposición antes del parche, considere rotar credenciales y tokens de servicio afectados y revisar el historial de objetos de los buckets públicos o compartidos.

Además de parchear, revise sus prácticas de serialización: si es posible, evite enviar modelos en formatos que ejecuten código en carga como pickle/joblib; prefiera formatos diseñados para despliegue seguro (SavedModel, ONNX o exportaciones que no ejecuten código al cargar). En el plano de control de acceso, limite los permisos asociados a agentes y cuentas de servicio, use Workload Identity y aplique políticas organizacionales que impidan la creación de recursos con nombres previsibles o que obliguen a la vinculación de buckets a proyectos concretos.
Para equipos de respuesta y riesgo, audite logs de Cloud Storage y Vertex AI por operaciones inusuales en las ventanas de carga de modelos, y revise accesos a la metadata server y tokens emitidos por servicios gestionados. Este incidente vuelve a poner sobre la mesa la necesidad de tratar la cadena de suministro de ML como un vector de amenaza: desde el código del cliente hasta los artefactos que se despliegan en producción.
Lea el análisis técnico y la notificación de la investigadora original en la web de Unit 42 para detalles del PoC y tiempos de explotación: Unit 42. Compruebe las notas de lanzamiento y versiones del SDK en el repositorio oficial para confirmar que su entorno está actualizado: python-aiplatform releases y la página del paquete en PyPI: google-cloud-aiplatform on PyPI. Actúe hoy: parchear y fijar el bucket de staging elimina la ventana de ataque conocida; complementarlo con controles de acceso y prácticas de serialización seguras reduce significativamente el riesgo.
Relacionadas
Mas noticias del mismo tema.

Identifican plataforma AnonyMousKIT de phishing para eliminar Activation Lock en iPhone y iPad
Investigadores de ciberseguridad han documentado una plataforma de phishing como servicio orientada a eliminar la protección de Activation Lock de iPhones y iPads robados, combi...

EE. UU. impone sanciones a redes iraníes vinculadas a MOIS y Mabna en la operación Economic Outcast
El Departamento del Tesoro de Estados Unidos ha lanzado una nueva ronda de sanciones financieras contra redes vinculadas a Irán, en una campaña que las autoridades estadounidens...

Cadena de explotación NemoClaw expone Ollama a acceso no autenticado y altera plantillas del chat
Qué ha ocurrido (hechos confirmados): Investigadores de Oasis Security han publicado un informe que describe una cadena de explotación contra la configuración de NemoClaw que pu...

CISA añade CVE-2026-21962 a KEV por explotación remota en Oracle HTTP Server y WebLogic
La Agencia de Seguridad Cibernética e Infraestructura de Estados Unidos (CISA) ha incluido en su catálogo Known Exploited Vulnerabilities (KEV) la falla crítica rastreada como C...

IA en generación de código acelera dependencias OSS y genera deuda de remediación en seguridad
Un reciente seminario organizado por ActiveState y una encuesta a 300 responsables de seguridad y desarrollo en empresas de distintos sectores confirma algo que muchos equipos y...

Identifican WordlistLoader y SynkLoader, loaders intermedios ligados a brokers de acceso para
Investigadores de ciberseguridad han identificado dos familias de malware nuevas —denominadas WordlistLoader y SynkLoader— empleadas como etapas intermedias para desplegar carga...

TikTok pagará 400 millones para COPPA; 100 M condicionados a anulación de decreto Musical.ly
El Departamento de Justicia de EE. UU. anunció el pago de 400 millones de dólares por parte de TikTok para resolver una demanda de 2024 que acusaba a la plataforma —propiedad de...