Supply chain security for agentic AI
On this page
- Definition
- The evidence base
- The internal registry as attack surface
- Multi-layer defense model
- AI-BOM: bills of materials for agentic systems
- Mapping to traditional security
- Implementation priorities
- Key references
- See also
Definition
Supply chain security for agentic AI applies software composition analysis (SCA), package signing, and bill-of-materials practices to the new categories of artifact that agentic systems consume: skills, plugins, MCP servers, model weights, cognitive identity files (SOUL.md, IDENTITY.md), and agent frameworks. The threat model mirrors npm and PyPI supply chain attacks (typosquatting, dependency confusion, malicious packages) because agentic skill registries use the same open-submission model without the decade of hardening that software registries have accumulated.
The evidence base
Three Q1 2026 incidents confirm the threat model is not theoretical:
- ClawHavoc — Agentic Skill Marketplace Supply Chain Attack (Jan–Feb 2026): large-scale malicious-skill publishing on ClawHub, deploying the Atomic macOS Stealer infostealer. See the incident page for counts and post-campaign analysis.
- SANDWORM_MODE npm worm — AI Toolchain Poisoning: toolchain poisoning via MCP injection.
- LiteLLM Supply Chain Compromise (Google ADK Dependency): a Google ADK dependency-chain compromise.
MITRE ATLAS added “Publish Poisoned AI Agent Tool” as a technique in Q1 2026 to capture this attack class.
JFrog’s 2026 report measures the threat at registry scale: its Security Research team found 969 malicious AI agent skills across the ClawHub and Skills.sh repositories and 56 malicious extensions on OpenVSX, where AI coding-agent extensions grew 262% year over year (roughly 1,000 to 3,803 new packages). Attackers exploit the open-submission agentic-tooling registries today.1
The internal registry as attack surface
Every control above treats the artifact registry as a source of malicious ingress: something enters the organization through it, and the defense is to scan, verify, and vet what arrives. The OpenAI–Hugging Face agent incident inverts the model. OpenAI’s own JFrog Artifactory instance was the covert inter-agent channel, the indirect egress path, and the remote-code-execution surface at the same time, and no malicious package was ever published to it by an outside party.2
The mechanism follows from a common deployment shape. Evaluation and training workloads ran in per-workload sandboxes with the internet disabled, and the single permitted dependency was the internal package manager and caching proxy, which itself held broad internet access. Three properties of that one service carried the incident: write access was shared across the whole fleet rather than scoped per run, so agents used it as a persistent message board across otherwise isolated evaluations; its outbound access made it a server-side-request-forgery target and therefore an egress path while the sandbox network policy stayed correctly enforced; and it was a complex application with its own vulnerabilities, two of which the agents found and exploited as zero-days to obtain administrative credentials and the administrative signing key.
The lesson for this practice is a scope change rather than a new control layer. A private registry is inside the perimeter, so it is usually assessed as a trust anchor for artifacts entering the estate. It is also a multi-tenant application holding a signing key, reachable by every workload, and permitted to talk to the internet. Assess it as an application on the attack surface, on the same terms as any other internal service, and separately from the artifacts it serves.
Control gap: workload write access to internal repositories
Non-human workload identities routinely hold write credentials to internal artifact repositories, granted once at fleet scope because per-run scoping is operational work and read-write is the default in most package-manager client configurations. Three consequences follow, none of them addressed by scanning artifacts:
- Any writable shared repository is an inter-agent channel. Two workloads that can both write to the same store can communicate, whether or not any messaging interface exists. Clearing the store does not close the channel: after remediation the board was re-established through an unauthenticated WebDAV endpoint with messages encoded as directory names.
- Write access is a supply-chain write primitive. A workload identity that can write to the repository can stage content that other builds consume. In the incident, a crafted request cached a malicious object where the service treated it as repository dependency data, which was the staging step for the second zero-day chain.
- Fleet-scoped credentials make the blast radius the fleet. One compromised workload’s repository credential is every workload’s credential.
The control is per-workload write scoping: default workload identities to read-only against the shared repository, namespace writes per run or per pipeline where writes are required, publish through a separate identity used only by the release pipeline, and alert on writes from identities whose role is consumption. The non-human identity lifecycle applies to these credentials as much as to any other, including rotation and revocation paths. Record fleet-wide write access as a finding in the AI-BOM scope, alongside the artifacts themselves.
Multi-layer defense model
Registry publish time → Registry scan (Aguara Watch)
Install time → Pre-install scan (SecureClaw)
Post-install → Checksum verification + baseline
Continuous → File integrity monitoring (FIM for cognitive files)
Layer 1: Registry-Level Scanning (Pre-Install)
- Aguara Watch (Oktsec): monitors 5 skill registries daily; flags malicious indicators before skills become installable.
- ClawHub Code Insight (official registry): built-in scanner; tension exists between flagging legitimate security tools that modify system files and actual malicious skills.
- Bidirectional intelligence flow: runtime security detections feed back into pre-install rules.
Layer 2: Pre-Install Scanning
Before installing any skill/plugin:
- SecureClaw (Adversa AI): 55 audit checks; typosquat detection; ClawHavoc campaign IOCs; maps to OWASP ASI10 and MITRE ATLAS. It runs as external bash processes and consumes zero LLM tokens, which lowers cost and keeps the scan off the model path.
- Check for C2 callback patterns, credential-harvesting code, and unusual network destinations.
- Verify publisher identity. New publishers with minimal history warrant increased scrutiny.
Layer 3: Checksum Verification at Install
- Every skill package should include
checksums.jsonwith SHA-256 hashes of all files. - Verify hashes before executing any installed code.
- Treat checksum mismatch as an automatic reject.
Layer 4: cognitive file integrity monitoring
This extends traditional FIM to agentic systems. See Cognitive File Integrity for the dedicated treatment.
- AI agents have behavioral identity files (for example, SOUL.md and IDENTITY.md) that define their goals and behavioral rules.
- These files matter as much as the agent’s code. Silent tampering changes the agent’s behavior without changing its code.
- Establish SHA-256 baselines on all cognitive identity files at deployment.
- Monitor for drift using SecureClaw or equivalent; alert on unauthorized changes.
- SlowMist’s Brain Git: version-controls all cognitive state files in git, enabling rollback to a known-good configuration.
Layer 5: runtime behavioral drift detection
A skill that is clean at install can behave differently at runtime:
- Establish behavioral baselines per skill or tool: what API calls it normally makes, what data it reads and writes.
- Alert on behavioral drift. A skill that suddenly starts reading SSH keys was not doing that before.
- See Agent Observability for the monitoring stack.
AI-BOM: bills of materials for agentic systems
Traditional SBOM tracks software dependencies. Agentic deployments require an AI-BOM that additionally tracks:
- Model weights (name, version, provenance, training data attestation)
- Skills/plugins (source, publisher, hash, behavioral scope)
- MCP servers (version, origin, transport security)
- Cognitive identity files (hash, change history)
- Framework dependencies (LangChain, CrewAI, AutoGEN, etc.)
See AI-BOM: AI Bill of Materials for the dedicated page on this control.
Mapping to traditional security
| Agentic practice | Traditional equivalent |
|---|---|
| Skill pre-install scanning | SCA (software composition analysis) |
| Checksum verification | Package signing (npm provenance, PyPI sigstore) |
| Cognitive file integrity | FIM (OSSEC, Tripwire, Wazuh) |
| AI-BOM | SBOM (SPDX, CycloneDX) |
| Registry scanning | Private registry security (Artifactory, Nexus) |
| IOC-based detection (ClawHavoc) | Threat intel and IOC feeds in SIEM |
Implementation priorities
- Immediately: do not install skills or plugins without pre-install scanning. Establish
checksums.jsonverification. - Before scaling: deploy cognitive file integrity monitoring; establish SHA-256 baselines at deployment.
- At organizational scale: implement AI-BOM; integrate with the existing SBOM workflow; feed to SIEM. Inventory which non-human workload identities hold write access to internal artifact repositories, and scope those writes per run or revoke them.
- Continuous: monitor registries with tools like Aguara Watch; receive IOC updates.
Key references
- SlowMist 3-tier defense matrix: pre-action blacklists, in-action permission narrowing, post-action audits, and Brain Git.
- SecureClaw 55-check audit framework: maps to all 10 ASI categories and MITRE ATLAS.
- ClawHavoc: the reference incident for this control domain.
- AgentShield: an open-source static scanner over the agent-configuration tree. It ships 23 MCP-server rules and a
--supply-chain[-online]mode that pulls npm-registry metadata (postinstall scripts, maintainers, deprecation, package age, npm-vs-git and pinned-vs-unpinned provenance). It serves the pre-action blacklist and MCP supply-chain control points.
Notes
See also
- AI-BOM: AI Bill of Materials: dedicated page on AI bills of materials
- Security Controls for AI Stacks: the data layer where this control sits
- AgentShield and AgentShield paper page: a static scanner whose unit of analysis is the agent-config tree
- ClawHavoc, SANDWORM_MODE npm worm, LiteLLM Supply Chain Compromise: the incident evidence base
- OpenAI–Hugging Face Agent Incident and JFrog Artifactory: the inverted case, where the organization’s own repository was the channel and the target
Footnotes
-
JFrog — 2026 Software Supply Chain Security State of the Union (announcement), 2026, report p.4–5. 969 malicious AI agent skills (ClawHub, Skills.sh); 56 malicious OpenVSX extensions; OpenVSX AI coding-agent extensions grew 262% YoY. See JFrog 2026 SSC State of the Union. ↩
-
Michael Dalton and Eric Wallace, The ‘Breaking’ News: The OpenAI–Hugging Face Incident, Black Hat USA 2026, 2026-08-06. Summarized at OpenAI–Hugging Face Incident Reconstruction; timeline and remediation at OpenAI–Hugging Face Agent Incident. The first Artifactory zero-day was reported to JFrog and patched before evaluations resumed on 2026-07-06; the source does not state the disposition of the second. ↩