漏洞  ·  2026-06-21

Google Vertex AI SDK"泡菜中间人"——存储桶抢占启用跨租户 RCE

漏洞High 影响Global
Palo Alto Networks Unit 42 发现并负责任地披露了 Google Cloud 的 Vertex AI Python SDK 中的设计缺陷(报告于 2026-03-05,补丁于 2026-04-15,公开披露于约 2026-06-16)。受影响的 SDK 版本 1.139.0 和 1.140.0 生成确定性 GCS 暂存存储桶名称而无需验证存储桶所有权。结合 Python 在 ML 模型加载中的不安全 pickle 反序列化,攻击者可以预先声称存储桶、在竞争条件窗口中注入恶意模型工件,并在 Google 的多租户服务基础设施内实现代码执行。Unit 42 演示了泄露授予对 BigQuery 元数据和其他内部资源的访问权限的 OAuth 令牌的情况。
此攻击不需要访问受害者的云项目——只需他们的公开项目 ID 和区域。它证明了 ML 模型上传管道是一个新颖的 RCE 表面:在服务容器中的 pickle 反序列化以云服务账户权限执行任意代码,破坏托管 AI 平台中的租户隔离。该技术(命名约定抢占 + pickle RCE)可推广到其他自动生成可预测存储路径的 ML 平台。
Vertex AI Python SDK(版本 1.139.0-1.140.0)从受害者的项目 ID 和区域生成可预测的暂存 GCS 存储桶名称(格式:project-vertex-staging-region)。具有自己 Google Cloud 项目的攻击者预先注册此存储桶名称(存储桶抢占)。当受害者上传模型时,SDK 无声地将工件上传到攻击者的存储桶。Cloud Function 在上传时触发并在约 2.5 秒的竞争窗口内将合法模型交换为恶意 pickle/joblib 有效负载。然后 Vertex AI 反序列化被毒害的模型,在 Google 的服务容器内执行攻击者的代码并泄露来自元数据服务器的 OAuth 令牌。
google-cloud-aiplatform(Vertex AI Python SDK)版本 1.139.0 – 1.140.0;在 1.144.0 和 1.148.0 中完全补丁
将 google-cloud-aiplatform 升级到 1.148.0 或更高版本。在模型上传时始终显式设置 staging_bucket 参数,而不是依赖自动生成的名称。公告:https://unit42.paloaltonetworks.com/hijacking-vertex-ai-model/
来源
Unit 42 — Pickle in the Middle: Hijacking Vertex AI Model Uploads for Cross-Tenant RCEThe Hacker News — Google Vertex AI SDK Flaw Let Attackers Hijack Model Uploads via Bucket SquattingCSO Online — Google's Vertex AI SDK could allow RCE through bucket squatting
在实时动态中查看 浏览更多 AI 安全与治理相关发现 — 每日清晨更新。
打开动态 →