Machine learning pipelines have quietly become one of enterprise technology's most consequential attack surfaces — and a recently disclosed vulnerability in Google Cloud's Vertex AI ecosystem illustrates exactly why. A flaw embedded in the Vertex AI SDK for Python gave adversaries a surprisingly clean path to intercept model uploads, inject malicious code, and execute it within Google's own AI serving infrastructure. No access to the victim's cloud project was required.
The Anatomy of a Cloud ML Hijack
Researchers at Palo Alto Networks Unit 42 identified and responsibly disclosed the vulnerability to Google through its bug bounty program. The attack technique has been given a fitting name: Pickle in the Middle — a nod to both the classic man-in-the-middle attack pattern and Python's notorious pickle serialization format, which has long been a vehicle for arbitrary code execution in machine learning workflows.
Here's the core of what made this flaw so dangerous: when a data scientist or ML engineer uploads a model through the Vertex AI Python SDK, the SDK interacts with Google Cloud Storage buckets as part of the pipeline. The vulnerability enabled a technique known as bucket squatting — a method by which an attacker pre-registers or claims a storage bucket whose name the SDK is predictable enough to reference. Once in position, the attacker could substitute a legitimate model artifact with a weaponized one, laced with malicious pickle payloads designed to execute upon deserialization.
The attacker required no foothold inside the victim's Google Cloud project. The exploit lived entirely in the infrastructure layer — making it exceptionally difficult to detect through conventional access logging or IAM auditing.
Why Pickle Remains a Persistent Threat Vector
The pickle module in Python is a well-understood hazard in security circles, yet it remains ubiquitous in machine learning workflows. Frameworks like PyTorch and scikit-learn use pickle-based serialization for model artifacts by default, largely because of its flexibility and compatibility. That flexibility, however, comes with a fundamental security trade-off: deserializing a pickle object executes arbitrary Python code. Load a malicious .pkl file, and you've effectively handed the attacker a shell.
In the Vertex AI context, this risk was amplified because execution happened not just on the developer's local machine, but potentially within Google's own managed serving infrastructure — the systems responsible for deploying and running models at scale. Code execution at that layer carries implications that extend well beyond a single compromised workstation.
Bucket Squatting: A Predictability Problem
The bucket squatting element of this attack chain deserves separate attention. Google Cloud Storage bucket names exist in a global namespace — meaning any user with a Google Cloud account can register a bucket with any available name. When SDK behavior is predictable enough that an attacker can anticipate what bucket name a target organization's tooling will reference, that global namespace becomes an attack vector.
This is not a novel concept — similar techniques have appeared in package manager ecosystems under the label of dependency confusion — but its application to ML model serving pipelines represents a meaningful evolution of the tactic. As organizations increasingly rely on managed AI platforms and automated ML pipelines, the predictability of infrastructure interactions becomes a security-critical property.
Scope and Current Status
Unit 42 researchers reported no evidence of exploitation in the wild, and Google has since addressed the vulnerability following responsible disclosure. The bug bounty process functioned as intended in this case — a reminder that investment in structured vulnerability research programs continues to yield real-world security dividends.
That said, the absence of observed exploitation should not be read as evidence that similar flaws don't exist elsewhere in the AI/ML supply chain. The attack surface represented by ML pipelines — encompassing model registries, serialization formats, cloud storage integrations, and serving infrastructure — remains underexplored relative to traditional software systems.
What You Should Do
The Bigger Picture
This vulnerability is a microcosm of a broader and growing challenge: as AI infrastructure matures and becomes mission-critical, it inherits all the attack surface complexity of traditional software — while adding new dimensions unique to machine learning. Model supply chains, serialization formats, and managed serving platforms each introduce risks that security teams are only beginning to systematically address.
Organizations building on cloud AI platforms should treat their ML pipelines with the same rigor applied to application code and cloud infrastructure. The era of treating AI tooling as a low-risk productivity layer is over.