
The AI development supply chain encompasses the entire supply network, including public models, dependency packages, SaaS DevOps platforms, and AI agents embedded in development that AI products rely upon. This article is intended for CTOs, security officers, and SREs at companies that develop and operate AI products. It organizes the major incidents that surfaced between 2024 and 2026, explains AI-specific attack surfaces that SBOM alone cannot close, and describes a defense strategy combining AI BOM / model card verification / least-privilege OAuth / Sensitive secret management / CI/CD isolation. By the end, readers will be able to compile a checklist of defensive measures missing from their own AI development pipelines.
The supply chain of AI products is broader than that of traditional software supply chains. Compromises have been observed continuously across four vectors: models, dependency packages, SaaS DevOps, and AI agents. This chapter organizes the major incidents that surfaced between 2024 and 2026 and the breadth of the risk surface unique to AI development.
The incidents that shook AI development environments between 2024 and 2026 occurred across four distinct vectors.
While these may appear to be separate incidents, they all share the same underlying structure: a compromise somewhere in the AI/SaaS development dependency chain leads to the cascading leakage of keys and code.
There are four reasons why the risk surface of AI development is broader than that of traditional software.
First, weight files can serve as executable payloads. Models in Pickle format can execute arbitrary Python code, meaning that loading them without a scanner constitutes a successful compromise. Second, there is a common practice of obtaining base weights and datasets from public hubs, so an account compromise on the hub side is immediately incorporated. Third, AI development is built on a chain of SaaS services — model registries, vector databases, deployment platforms, logging infrastructure, and so on — with each API key and OAuth scope forming part of the supply chain. Fourth, as more companies integrate AI coding agents into their development workflows, dependency additions written by those agents can themselves become attack vectors. These are areas that traditional SBOM and CVE scanning alone cannot make visible, and they require AI-specific countermeasures.
Loading a model obtained from a public hub such as Hugging Face directly in Pickle format leads directly to arbitrary code execution. Migrating to safetensors and verifying model card signatures serve as the first line of defense. This chapter organizes real-world examples of public model backdoors and the risks posed by loading models without verification.
In public model registries including Hugging Face, cases of backdoors embedded in Pickle-format models (.bin / .pkl / .pt) have been reported on an ongoing basis. ReversingLabs published a PoC that bypasses Pickle scanners and launches external connections or reverse shells at model load time, and has detected multiple malicious real-world examples (source: ReversingLabs "nullifAI" analysis article). JFrog Security Research has also detected numerous Pickle-based backdoored models and reported them to Hugging Face (source: JFrog Security Research).
These attacks combine social engineering elements such as "publishing under a repository name closely resembling a legitimate model name" and "distributing as a purported fine-tuned version of a legitimate model." As long as AI development organizations allow individual engineers to call from_pretrained() at their own discretion, the risk of Pickle execution is ever-present. The issue is that backdoors are not an "exceptional case" but rather a continuous threat that derives from the very structure of public hubs.
The ability of Pickle to execute arbitrary code is by design, not a bug. Python's pickle.load() is designed to permit arbitrary function calls via __reduce__, meaning that loading without a scanner is sufficient for a compromise to occur (source: Python official documentation, pickle module "Warning" section).
Countermeasures proceed in three stages.
A practical operational pattern is to consolidate all internal from_pretrained() calls into a common wrapper that enforces registry, format, and signature requirements. Eliminating the state in which individual engineers load Pickle files directly is itself an organizational-level defense.
Third-party packages on npm / PyPI and GitHub Actions are dependency layers used as standard practice in AI development as well. There are real-world examples of typosquatting, maintainer account takeovers, and build-time substitution attacks. This chapter organizes concrete examples and the structure of multi-stage attacks.
Compromise at the dependency package layer is frequently observed in AI development as well. There are three representative patterns.
In AI development, in addition to top-level packages such as transformers, torch, and accelerate, second- and third-level dependencies run deep, including vector DB clients, agent frameworks, and evaluation libraries. Teams that manage only surface-level packages carry a structural risk of failing to notice compromises at deeper levels.
The xz utils backdoor (CVE-2024-3094) is a real-world example of dependency-layer compromise that does not end with a single package. An attacker operating under the name "Jia Tan" spent more than two years gaining maintainer privileges on the xz project and incrementally embedded an obfuscated backdoor into liblzma. The final payload rewrote sshd's authentication logic via liblzma, creating a state in which only the specific attacker could bypass SSH authentication (source: NVD CVE-2024-3094, oss-security mailing list report by Andres Freund).
From an AI development perspective, there are two lessons to draw.
First, social takeover of a maintainer cannot be prevented by technical detection alone. In addition to commit signing and CI scanning, it is necessary to adopt organizational maintainer contributions to critical OSS projects, SLSA-level provenance tracking, and Reproducible Builds. Second, libraries that are not direct dependencies (such as compression libraries in the libc vicinity) can affect the SSH pathway of AI inference servers. The scope of an AI BOM should extend not only to the ML stack but also to the OS layer of the model serving infrastructure. Narrowing the scope under the assumption that certain OSS is "unrelated to AI development" will cause attacks of the same type as the xz utils compromise to be overlooked.
A breach of a SaaS DevOps platform differs from an individual developer's credential leak in that the secrets, code, and deployment permissions of multiple customers are simultaneously affected. The Vercel April 2026 incident highlighted the operational difference between the encrypted and Sensitive modes. This chapter organizes the structure of the incident and the operational lessons learned.
The incident disclosed by Vercel in April 2026 involved an employee account being compromised via a third-party AI tool, resulting in the external exposure of encrypted environment variables belonging to some customers. Vercel has publicly stated that Sensitive environment variables were protected by encryption with no evidence of access, that services remained operational, and that the npm package supply chain was unaffected (source: Vercel KB Bulletin "April 2026 security incident").
What is important here is that Vercel environment variables have multiple storage modes.
The lesson is clear: API keys, tokens, database credentials, and signing keys must use Sensitive. Do not continue operating with existing encrypted variables on the grounds that "it requires minimal changes." New keys should be created as Sensitive from the outset, and the standard practice should be to upgrade to Sensitive with each rotation. Vercel itself changed the default for environment variables to Sensitive-enabled following this incident.
The danger of SaaS chaining is that a breach of one platform can propagate all the way through the OAuth scopes connected to it. SaaS services tend to hold each other's API keys and OAuth tokens — for example, OAuth from Vercel to GitHub, notifications from Vercel to Slack, and telemetry from Vercel to PostHog or Sentry. If an exposed encrypted env contained API keys for other SaaS services, the damage would extend to those services as well.
On the operational side, four principles should be combined.
The larger the platform — such as Vercel — the more critical it becomes for users to design proper key isolation and least-privilege access. Building a configuration that allows your organization to actively limit the blast radius in the event of a vendor breach is the most fundamental form of defense.
AI coding agents increase productivity while also becoming a new attack vector. The risk of agents executing dependency modifications and code injection via prompt injection has become a reality. This chapter organizes the attack chains that pass through agents and the design of permission boundaries within developer workflows.
AI coding agents (agent products backed by Claude, GPT, or Gemini) are increasingly designed to automate not just code generation, but also tool calls that edit package.json, create files, run pnpm add, and commit to git. This expands the pathways through which indirect prompt injection can occur — where "external text" read by the agent is executed directly as instructions (source: OWASP Top 10 for LLM Applications LLM01: Prompt Injection).
There are three concrete scenarios.
node_modules contain instructions that prompt the installation of additional packages.This is an attack that succeeds through the combination of LLM01 (Prompt Injection) and LLM02 (Insecure Output Handling) from the OWASP LLM Top 10, and cannot be prevented by model-level safety measures alone. The more deeply agents are integrated into the development workflow, the more the pathway from external input to dependency modification expands structurally.
To operate AI coding agents safely, it is necessary to design agent permissions by separating "code generation only" from "operations with side effects (package addition, commits, deployments)." The implementation pattern combines the following four points.
pnpm add / npm install / pip install to a two-step flow where the agent proposes and the developer approves. Enforce --frozen-lockfile in CI as well, making review mandatory for any new dependencies.These measures sacrifice some productivity, but the need for this design grows as AI coding agents become more deeply embedded in an organization at scale. Integrating agents into the supply chain with their full convenience unlocked carries the same structural risk as referencing a third-party Action like tj-actions without a SHA pin.
Supply chain defense for AI development cannot be completed with a single tool. A layered defense combining AI BOM, model card verification, least-privilege OAuth, Sensitive secret management, CI/CD isolation, and audit trails is the practical approach. This section organizes implementation patterns into two groups.
AI BOM (AI Bill of Materials) is an extension of the traditional SBOM to cover AI components (model weights / datasets / inference runtimes / evaluation data). The CycloneDX AI/ML BOM extension, OWASP AI Exchange, and the SPDX 3.0 ML profile are progressing as industry standards (sources: CycloneDX Specification 1.5 and later, OWASP AI Exchange, SPDX 3.0).
Implementation proceeds in four steps.
Having an AI BOM in place allows you to quickly look up whether your organization is affected when a new case of model poisoning or dependency tampering is disclosed. This significantly reduces the initial response time during incident handling.
As an additional layer of defense, lock down SaaS chain and operational process controls with the following four points.
These four points serve as the final circuit breaker to prevent a breach of one SaaS from cascading across the entire organization. It is important to establish them not as vendor-specific measures, but as organization-wide operational standards.
The AI development supply chain has expanded from the traditional two layers of "code + dependency packages" to four layers: "public models + dependency packages + SaaS DevOps + AI agents." The Hugging Face Pickle arbitrary code execution incident, the tj-actions tampering, the xz utils multi-stage backdoor, and the Vercel April 2026 incident are all results of a breach somewhere in this expanded supply chain.
Defense cannot be achieved with a single solution. Organizing countermeasures by attack path yields the following:
Using the four-path framework from this article to classify your situation and identify which layers are missing in your organization is the most direct route to bringing your AI development practices up to 2026 standards. At our company, we have translated the checklist perspectives from this article into an internal audit template for AI development organizations, and operate it alongside an immediate-response runbook for when we receive breach notifications from vendors.

Yusuke Ishihara
Started programming at age 13 with MSX. After graduating from Musashi University, worked on large-scale system development including airline core systems and Japan's first Windows server hosting/VPS infrastructure. Co-founded Site Engine Inc. in 2008. Founded Unimon Inc. in 2010 and Enison Inc. in 2025, leading development of business systems, NLP, and platform solutions. Currently focuses on product development and AI/DX initiatives leveraging generative AI and large language models (LLMs).