Falha no Google Vertex AI SDK permite desvio de uploads de modelos via bucket squatting
18 de Junho de 2026

Uma falha no SDK do Google Cloud Vertex AI para Python permitia que um invasor, mesmo sem acesso ao projeto da vítima, sequestrasse o upload do modelo de machine learning e executasse código dentro da infraestrutura de serviço do Google.

A descoberta foi feita pela Palo Alto Networks Unit 42, que identificou e reportou o bug por meio do programa de bug bounty do Google.

A técnica recebeu o nome de “Pickle in the Middle”, e a empresa afirmou não ter encontrado indícios de exploração em ambiente real.

O Google já corrigiu o problema.

Quem usa o SDK deve atualizar para a versão 1.148.0 ou posterior.

Para explorar a falha, o atacante precisava apenas de um projeto próprio no Google Cloud e do ID do projeto da vítima, informação que muitas vezes é pública.

Não eram necessários credenciais, phishing nem qualquer ponto de apoio no ambiente-alvo.

O problema estava na forma como o SDK escolhia um bucket temporário do Cloud Storage para fazer o upload dos modelos.

Se o usuário não definisse um bucket, o SDK gerava um nome previsível com base no ID do projeto e na região, como project-vertex-staging-region.

Ele verificava se o bucket existia, mas não se o bucket realmente pertencia à vítima.

Como os nomes de bucket são globais e únicos, o atacante podia criar antes o bucket esperado no próprio projeto.

Em seguida, o SDK da vítima enviava os arquivos do modelo para esse bucket sob controle do invasor.

A partir daí, o atacante podia substituir o modelo enviado por uma versão maliciosa.

Muitos modelos de machine learning em Python são salvos com pickle ou joblib, formatos que podem executar código quando o arquivo é carregado.

Quando o Vertex AI carregava o modelo trocado, o código do atacante era executado dentro do contêiner de serviço.

O ataque dependia de velocidade.

A Unit 42 mediu cerca de 2,5 segundos entre o upload da vítima e a leitura do arquivo pelo Vertex AI.

Em seu proof of concept, o atacante usou uma Cloud Function disparada após o upload e conseguiu substituir o modelo em 1,4 segundo, antes que o Vertex AI o processasse.

O payload então roubava um token OAuth do servidor de metadados do contêiner de serviço e o enviava ao atacante.

No ambiente de testes da Unit 42, esse token não ficava restrito à implantação comprometida.

Ele podia acessar outros artefatos de modelo no mesmo projeto de tenant gerenciado pelo Google, incluindo um modelo completo do TensorFlow com pesos treinados, além de metadados do BigQuery, listas de acesso, logs de tenant, nomes de clusters GKE e caminhos internos de imagens de contêiner.

O ataque só funcionava em condições específicas: o bucket de staging padrão da vítima não podia já existir naquela região, e o parâmetro staging_bucket precisava ficar sem configuração.

A primeira condição é comum em um projeto novo no Vertex AI em determinada região.

A segunda depende de o desenvolvedor confiar no padrão do SDK, em vez de informar o próprio bucket.

A Unit 42 reportou a falha por meio do Vulnerability Reward Program do Google em 5 de março de 2026.

A equipe testou as versões 1.139.0 e 1.140.0, as mais recentes disponíveis na época, e encontrou vulnerabilidades em ambas.

O Google lançou uma correção inicial na versão 1.144.0, em 31 de março, acrescentando um uuid4 aleatório ao nome do bucket.

A correção foi concluída na versão 1.148.0, em 15 de abril, com a inclusão de uma verificação de propriedade do bucket para impedir bucket squatting em Model.upload().

Até a publicação deste texto, nem a Unit 42 nem os boletins de segurança do Vertex AI do Google haviam atribuído um CVE ao caso.

A recomendação é atualizar para a versão 1.148.0 ou posterior para ativar a verificação de propriedade.

Também é importante definir explicitamente um staging_bucket em um local do Cloud Storage sob seu controle ao enviar modelos.

Como a lógica defeituosa está no SDK cliente, é essencial verificar a versão do google-cloud-aiplatform em todos os ambientes em que ele roda, incluindo notebooks, jobs de CI e pipelines de treinamento, e não apenas nos serviços de produção.

Este é o segundo problema de nome previsível de bucket a aparecer no Vertex AI neste ano.

Em fevereiro, o Google corrigiu o CVE-2026-2473 , uma falha separada de bucket squatting no Vertex AI Experiments, que também permitia execução de código entre tenants, roubo de modelos e envenenamento.

Trabalhos anteriores da Unit 42 sobre as permissões padrão do service-agent do Vertex AI também mostraram um caminho relacionado, indo de um agente de IA implantado até dados de clientes e tenants.

Publicidade

Anuncie no CaveiraTech e coloque sua marca na frente de milhares de profissionais de cybersecurity

Nossa audiência é formada por analistas, pentesters, decisores e entusiastas que consomem nossas notícias todo dia pelo Site, Newsletter e Instagram. Fale com quem realmente importa para o seu negócio. Anuncie aqui. Saiba mais...