Your AI supply chain runs code too
Model weights, packages, AI CLIs, MCP servers and skills: every piece you install runs with your permissions. What attacks have already happened, which controls work and what the European Union requires since September 11, 2026.
An AI application's supply chain is no longer just npm or PyPI: it includes model weights, datasets, AI CLIs and extensions, MCP servers and skills. In 2025 and 2026 we saw models that ran code on load, packages registered under names that models invent, compromised packages that used the victim's own AI CLIs to hunt secrets and a skills marketplace with hundreds of malicious entries.
The known controls still work (pinned versions, least privilege, private registries, an inventory), with one new caveat: a valid signature does not prove the code is safe. And since September 11, 2026, anyone selling software products in the European Union, including from Colombia, must send an early warning within 24 hours about actively exploited vulnerabilities.
The new AI supply chain
An application with AI depends on far more than its own code. Each of these pieces is written by someone else, arrives through a registry or a marketplace, and runs with your permissions:
- Model weights and files, often downloaded from Hugging Face, in formats that can run code when loaded.
- Datasets for fine-tuning, evaluation and RAG indexes, which decide what the model learns and repeats.
- Packages and SDKs such as AI gateways and agent frameworks, exposed to the same npm and PyPI attacks as any library.
- AI CLIs and IDE extensions, which work with the developer's files, tokens and cloud sessions.
- MCP servers: code that runs on your machine, plus tool descriptions the model reads as instructions.
- Prompts, skills and rules files: natural-language instructions that, as Unit 42 notes about agent skills, run with the agent's full permissions.
OWASP's Top 10 for LLM applications lists supply chain as LLM03 and data and model poisoning as LLM04; its agentic list adds ASI04, agentic supply chain vulnerabilities. The attack surface is not new in kind but in speed: an agent installs, runs and chains these pieces without a human reading them.
Model files and data: code that runs on load
Pickle, the default format for PyTorch weights, can execute arbitrary code when a file is loaded. Hugging Face scans uploads but warns that its scan is not foolproof. The threat is real: in February 2024 JFrog found about 100 models on the hub with genuine malicious payloads, one of which opened a reverse shell on load. A year later, ReversingLabs found two models ("nullifAI") packed as deliberately broken pickle files that evaded Picklescan, the hub's scanner; Hugging Face removed them within 24 hours and updated the tool.
Scale matters too. By April 2025, Protect AI and Hugging Face had scanned 4.47 million model versions in 1.41 million repositories and flagged 352,000 unsafe or suspicious issues across 51,700 models. A safer path exists: safetensors stores tensors without executable code (a 2023 Trail of Bits audit found no critical flaw leading to arbitrary code execution), and PyTorch 2.6 made weights-only loading the default in January 2025.
Weights are not the only vector. In 2025 Pillar Security showed instructions hidden in the chat template of a GGUF file, invisible to scanners that only inspect weights. On data, public numbers about real poisoning of enterprise models are scarce; the documented risk sits in the pipeline. In April 2026 OWASP linked the LiteLLM compromise to a breach at AI data vendor Mercor that put AI labs' training-data workflows at risk, as reported by WIRED.
Load only safetensors (or other formats without code execution) from verified publishers, pinned by hash. Treat any model that ships its own code or templates as third-party software: review it before it reaches production.
Hallucinated packages: slopsquatting
Code models sometimes recommend packages that don't exist. A study presented at USENIX Security 2025 (Spracklen et al.) tested 16 code-generating models on 576,000 samples: at least 5.2% of suggested packages were hallucinated for commercial models and 21.7% for open-source ones, yielding 205,474 unique non-existent names. An attacker only has to register the names models keep inventing and wait: that is slopsquatting.
Agents make it concrete. In April 2026 ReversingLabs described PromptMink: an AI coding agent added a malicious npm dependency to a crypto trading-agent project, in a commit co-authored by Claude Opus, exposing wallets. ReversingLabs links the campaign to Famous Chollima, a North Korea-linked group that layers packages to fool coding assistants more than humans.
The practical consequence: an agent that can run npm install or pip install is a new developer with no way of knowing which packages are real. Route its installs through an allowlist or a private registry, and review lockfile changes like any other code.
Attacks that used AI tooling, 2025–2026
Classic supply-chain attacks with a new target: the AI tools on developers' machines.
| Date | Incident | What happened | Lesson |
|---|---|---|---|
| July 2025 | Amazon Q Developer for VS Code 1.84.0 | Shipped with an injected prompt telling the agent to wipe local and cloud resources; the attacker got in through an over-scoped GitHub token. AWS says a syntax error kept it from running | Scope CI tokens to the minimum |
| August 2025 | s1ngularity (Nx, about 6 million weekly installs) | Malicious versions, live for about 4 hours, tried to use the victim's AI CLIs (Claude, Gemini) to hunt for secrets and uploaded them to public GitHub repositories | Your AI CLI works for the attacker too |
| September and November 2025 | Shai-Hulud worms (npm) | More than 500 packages compromised in the first wave (CISA); about 700 packages and more than 25,000 repositories of stolen secrets in the second (Wiz) | Pin versions and require phishing-resistant MFA |
| September 2025 | postmark-mcp | The first documented malicious MCP server: after 15 clean versions, version 1.0.16 silently copied every outgoing email to an attacker | A clean history proves nothing |
| February 2026 | ClawHavoc (ClawHub skills) | Koi Security found 341 malicious skills out of 2,857 audited; 335 installed a macOS stealer through fake prerequisite steps | A skill is code, even when written in plain language |
| March 2026 | LiteLLM (about 95 million monthly downloads) | Two backdoored PyPI versions, live for about 40 minutes, stole cloud, SSH and Kubernetes secrets; the entry point traces back to a compromised security scanner in its CI | Forty minutes is enough |
| September 2026 | TeamPCP (Google GTIG report) | Trojanized MCP server forks on PyPI, files hidden in .claude and .cursor folders, and packages published with valid signed attestations using stolen CI tokens | Provenance is not proof of safety |
One more signal: in February 2026, Socket found 19 typosquatted npm packages; one of their modules installed a rogue MCP server whose tool descriptions told coding assistants to read SSH keys, cloud credentials and .env files.
Controls that work, and where they stop
| Control | What it covers | Limit |
|---|---|---|
| Verified provenance: official publishers, reverse-DNS names in the MCP Registry | Impersonation and typosquatting | A legitimate publisher can be compromised (LiteLLM) |
| Signing: OpenSSF model signing v1.0 (Sigstore) and signed build attestations | Tampering between the publisher and you | A signature made with a stolen token is still valid |
| AI-BOM or ML-BOM (CycloneDX, SPDX 3.0) | Knowing which model, dataset and package version runs where | Only useful if kept up to date |
| Pinned versions, lockfiles and hashes | Short-lived malicious releases and worms | Needs a process to take real fixes quickly |
| Private mirror with allowlist and scanning | Hallucinated packages, pickle files, unknown MCP servers | Scanners can be evaded (nullifAI, skills with padded files) |
| Sandboxed agents and AI CLIs | Secret theft by scripts or injected instructions | Whatever the sandbox is still allowed to reach |
| Least-privilege, short-lived tokens and CI secrets hygiene | The blast radius of a stolen token (Amazon Q, Nx) | A maintainer account with legitimate rights |
OpenSSF released model signing v1.0 in April 2025 with Google, NVIDIA and HiddenLayer: a library and CLI to sign and verify models of any format or size with Sigstore, self-signed certificates or key pairs. CycloneDX supports an ML-BOM that records models, datasets and their provenance, and SPDX 3.0 includes AI and Dataset profiles. For MCP, Invariant Labs recommends showing full tool descriptions and pinning servers by hash, because a server can change them after you approve it.
Google's threat intelligence group reported in September 2026 that the DUSTMAKER stealer publishes compromised packages with valid, signed SLSA Build 3 attestations obtained with stolen CI tokens, and that these pass the automated trust checks of AI coding agents. A signature tells you who published; review and least privilege limit what the code can do.
EU Cyber Resilience Act: reporting is now mandatory
The Cyber Resilience Act (CRA, Regulation (EU) 2024/2847) entered into force on December 10, 2024; its main obligations apply from December 11, 2027, but reporting started on September 11, 2026. Manufacturers of products with digital elements must report actively exploited vulnerabilities and severe incidents through ENISA's Single Reporting Platform, addressed to the CSIRT of their main establishment.
| Deadline | What to send |
|---|---|
| 24 hours | Early warning |
| 72 hours | Notification |
| 14 days after a fix is available | Final report (vulnerability) |
| One month | Final report (severe incident) |
For AI the link is direct: a backdoored dependency such as the LiteLLM versions, actively exploited in your product, starts the 24-hour clock, and without an AI-BOM you cannot tell within a day whether you shipped it. Colombian vendors selling such products in the EU are covered even without an office there; confirm the scope and the competent CSIRT with counsel, using the practical guidance the Commission published in July 2026. If personal data is affected, Law 1581 of 2012 also requires reporting the incident to Colombia's SIC.
Checklist for teams building with AI
- Keep an AI-BOM: every model, dataset, package, AI CLI, MCP server and skill, with version and owner.
- Load models only as safetensors, from verified publishers, pinned by hash.
- Route installs by people and agents through a private registry with an allowlist.
- Pin dependencies, review lockfile diffs and wait before adopting brand-new releases.
- Keep CI tokens short-lived and minimally scoped, and require phishing-resistant MFA to publish.
- Run coding agents and AI CLIs in a sandbox, away from SSH keys, cloud credentials and .env files.
- Approve MCP servers and skills like vendors: read the descriptions, pin versions and alert on changes.
- Rehearse the CRA drill: detect, decide and send the early warning within 24 hours.
Where Slash fits: our cybersecurity work covers assessment, hardening and remediation of web apps and APIs, and in a pentest the AI components your application loads are part of the surface we review. Read next: prompt injection, MCP explained and agentic coding.
Key takeaways
- The AI supply chain includes model files, datasets, AI CLIs, MCP servers and skills, all running with your permissions.
- Pickle models can run code on load: use safetensors from verified publishers, pinned by hash.
- Models invent package names (21.7% for open models in one study): control what agents install.
- Recent attacks turned the victim's own AI tools against them (Nx, TeamPCP): sandbox agents and minimize tokens.
- Since September 11, 2026, the EU CRA requires a 24-hour early warning, including from Colombian vendors selling in the EU.
Sources
- Data scientists targeted by malicious Hugging Face ML models with silent backdoor
- Malware in ML models hosted on Hugging Face (nullifAI)
- Protect AI and Hugging Face: six months of model scanning
- We Have a Package for You! Package hallucinations by code-generating LLMs
- s1ngularity: postmortem of the Nx supply-chain attack
- Widespread supply chain compromise impacting npm ecosystem
- Shai-Hulud 2.0: ongoing supply chain attack
- Security update, March 2026
- OpenClaw and the AI supply chain risk of agent skills
- From prompting to autonomy: the evolution of adversarial AI
- Launch of model signing v1.0
- Cyber Resilience Act: reporting obligations
Editorial note: this analysis reflects the public information available on the review date. Models, prices and rules change fast; every third-party figure links to its source, and our opinions are labeled as such. Spotted an error? Write to contact@slash-digital.io.
The questions we hear often
What is slopsquatting?
Registering package names that AI models invent, so that code or agents following the suggestion install the attacker's package. A 2025 study measured at least 5.2% hallucinated packages for commercial models and 21.7% for open-source ones.
Is safetensors enough to make a model safe?
It removes code execution at load time, the main file-format risk. It doesn't prove the weights behave well, and templates or code shipped with the model still need review.
Are MCP servers from the official registry safe?
The MCP Registry, launched in preview in September 2025, ties names to verified GitHub accounts or domains and relies on community moderation to denylist malicious servers. It doesn't replace your review: pin versions and read the descriptions. More in MCP explained.
Does the CRA apply to a Colombian company?
If it places products with digital elements on the EU market, yes: reporting has applied since September 11, 2026, and the main obligations apply from December 11, 2027. Confirm the scope of your products with legal counsel.
Where should we start?
With the inventory (AI-BOM): without it you can't tell within 24 hours whether a compromised model, package or MCP server is in your product. Then pin versions and sandbox your agents.
More analysis to read next
MCP explained for companies
What the Model Context Protocol is, how it evolved to the 2026-07-28 spec, who governs it, how it differs from A2A and how to adopt it safely.
Agents and engineeringAgentic coding: how a software team changes in 2026
Claude Code, Codex, Copilot and Cursor now open pull requests on their own. What the benchmarks and studies really show, and how specs, tests and review must change.
Local AI and open weightsFrom laptop to server: Ollama, llama.cpp, vLLM and SGLang
Which engine for one person, a team or production, the techniques that multiply throughput, how to secure and monitor it, and when an API is cheaper.
Where to next
Let's put it in production
Tell us your challenge. We reply within 24 business hours with an honest first read: if we can help, we'll say how; if not, we'll say who can.
I reply personally. No endless forms, no canned replies.