Skip to content
Back to skills

Ai Supply Chain

ASecurity

Attack the ML/LLM supply chain — poisoned models, datasets, plugins, and unsafe model deserialization. Load when an app loads third-party models/weights (HuggingFace, .pt/.pkl/.h5), installs ML deps, uses plugins/extensions, or fine-tunes on external data. Signals: torch.load, pickle model files, model hub downloads, plugin marketplace, RAG over external corpora.

  • 20 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
ai-agentsrustgo

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add NoorQureshi/SploitAgent --skill ai-supply-chain --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ai Supply Chain?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ai Supply Chain
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/noorqureshi-ai-supply-chain/badge)](https://www.skillsdirectory.com/skills/noorqureshi-ai-supply-chain)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ai-supply-chain
description: >
  Attack the ML/LLM supply chain — poisoned models, datasets, plugins, and unsafe model
  deserialization. Load when an app loads third-party models/weights (HuggingFace, .pt/.pkl/.h5),
  installs ML deps, uses plugins/extensions, or fine-tunes on external data. Signals: torch.load,
  pickle model files, model hub downloads, plugin marketplace, RAG over external corpora.
domain: ai-ml
type: technique
stability: learning
modes: [pentest, defense, bugbounty]
severity: critical
owasp_llm: [LLM03:2025-Supply-Chain, LLM04:2025-Data-and-Model-Poisoning]
cwe: [CWE-502, CWE-1357]
tools: [fickling, modelscan]
schema_version: 1
---

# ML/LLM supply-chain attacks

## When it applies
The target consumes third-party ML artifacts: downloaded model weights, datasets, tokenizers,
plugins/extensions, or fine-tuning data. Each is code or data that runs with the app's trust.

## Why it works
Model files are frequently **pickle-based** (`torch.load`, `.pkl`, joblib) — loading them executes
arbitrary code (`__reduce__`), so a malicious model on a hub is RCE on whoever loads it. Datasets
and RAG corpora poison behavior; plugins/extensions run with the assistant's privileges; typosquatted
ML packages inject code at install.

## Method
1. **Unsafe model deserialization (RCE)**: if the app `torch.load`/`pickle.load`s a model you can
   supply or influence, craft a pickle with a `__reduce__` payload (`fickling`), or scan a suspect
   model (`fickling`, `modelscan`) for embedded code. Prefer safetensors as the safe alternative.
2. **Model/dataset poisoning**: contribute or substitute a model/dataset that carries a backdoor
   (trigger phrase → attacker-chosen output) or degrades safety — relevant when the app auto-pulls
   "latest" from a hub or fine-tunes on user/external data.
3. **Plugin / extension abuse**: a malicious or over-permissioned plugin the assistant loads →
   data access, tool abuse (→ `ai-agent-tool-abuse`).
4. **Dependency attacks**: typosquat/dependency-confusion on ML packages (→ `web-dependency-confusion`);
   compromised `requirements`.
5. **Provenance checks**: verify signatures/hashes, pinned versions, and safetensors usage.

## Gotchas
- `.pt`/`.bin`/`.pkl` = code execution on load; `.safetensors` = data only. The file format is the tell.
- Auto-updating to a hub's "latest" model/plugin is the poisoning entry point — flag it.
- Prove RCE with a benign payload (OOB callback), never a destructive one; mind scope/RoE.

## Verify success
Code execution when a crafted model/artifact is loaded (OOB beacon), a demonstrated backdoor
trigger, or a poisoned dependency/plugin executing in the app's context.

## References
OWASP LLM Top 10 (2025) LLM03/LLM04; `fickling` & `modelscan`; safetensors; "pickle is not secure".

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…