# LLM Security Plugin v3.0.0 — Release Notes

> Security scanning, auditing, and threat modeling for Claude Code.

## What's New in v3

Eight development sessions (v2.5 -> v3.0) adding six major capabilities:

| Capability | What It Does |
|------------|-------------|
| **Toxic flow analysis** | Detects lethal trifecta patterns — when combinations of individually safe tools create exfiltration chains (untrusted input + sensitive data access + exfiltration sink) |
| **Runtime session guard** | Monitors tool call sequences in real time for trifecta forming during a session. Sliding window of 20 calls, advisory warning |
| **MCP live inspection** | Connects to running MCP servers via JSON-RPC 2.0, fetches live tool descriptions, scans for injection and tool shadowing |
| **Report diffing** | Compares scans against stored baselines. Shows new, resolved, unchanged, and moved findings with fuzzy line matching |
| **Continuous scanning** | Recurring scans via `/security watch` (in-session) or `watch-cron.mjs` (system cron). Reports delta only |
| **Skill signature registry** | SHA-256 fingerprinting of scanned skills. Instant results for known fingerprints, 7-day cache |

Plus: 4 OWASP framework coverage (LLM Top 10, Agentic AI, Skills, MCP), MEDIUM-severity injection patterns, architecture diagram.

## By the Numbers

| | v1.0 | v2.0 | v3.0 |
|---|---|---|---|
| Commands | 8 | 10 | **14** |
| Hooks | 4 | 5 | **8** |
| Scanners | 0 | 7 | **10** (8 orchestrated + 2 standalone) |
| Agents | 4 | 4 | **6** |
| Knowledge files | 6 | 6 | **9** |
| Tests | 0 | 177 | **544** |
| OWASP frameworks | 2 | 2 | **4** |
| Lines of code | ~3,000 | ~8,000 | **~25,400** |

## Competitive Landscape

### Feature Comparison

| Feature | llm-security v3 | Snyk Agent Scan | Lasso Claude Hooks |
|---------|-----------------|-----------------|-------------------|
| **Type** | Plugin (hooks + scanners + agents) | CLI scanner | Runtime hook |
| **Runtime blocking** | 5 blocking hooks | No | Warn-only |
| **Runtime monitoring** | 3 advisory hooks | No | 1 advisory hook (96 patterns) |
| **Deterministic scanners** | 10 (8 orchestrated + 2 standalone) | Hybrid (local + cloud API) | None |
| **LLM agents** | 6 purpose-built | Cloud-side analysis | None |
| **MCP scanning** | Static + live (JSON-RPC 2.0) | Live connection | Output monitoring only |
| **Skills scanning** | 7 threat categories | Yes (--skills flag) | No |
| **Toxic flow analysis** | Yes (TFA scanner + session guard) | Yes | No |
| **Supply chain** | 7 package managers + OSV.dev + typosquat | Partial (URL detection) | No |
| **Prompt injection** | 44 patterns + obfuscation decode | Semantic (cloud) | 96 regex patterns |
| **Secret detection** | 13 patterns (blocking) | Yes (hardcoded only) | No |
| **Path guarding** | 8 categories (blocking) | No | No |
| **Destructive command blocking** | 8 block + 6 warn rules | No | No |
| **Report diffing** | Yes (baselines, fuzzy match) | No | No |
| **Continuous scanning** | Yes (watch + cron) | Enterprise only (Snyk Evo) | Always-on (hooks) |
| **Skill registry** | Yes (fingerprint cache) | No | No |
| **Remediation** | Auto/semi-auto/manual pipeline | No | No |
| **Threat modeling** | STRIDE x MAESTRO interview | No | No |
| **Audit & posture** | Full audit (A-F) + posture scorecard | No | No |
| **Pre-deploy checklist** | 10 auto + 3 manual checks | No | No |
| **OWASP mapping** | 4 frameworks (LLM, ASI, AST, MCP) | Not explicit | Not explicit |
| **Agent auto-discovery** | No (Claude Code focus) | 12 agents, 3 OS | No |
| **Cloud dependency** | None (100% local) | Snyk API required | None |
| **API key required** | No | Yes (Snyk token) | No |
| **Cost** | Free (MIT) | Snyk account | Free (MIT) |
| **Tests** | 544 | Not published | Not published |

### Key Differentiators

1. **Full lifecycle coverage.** The only tool offering hooks (runtime) + scanners (static) + agents (advisory) + remediation + threat modeling in a single package. Snyk scans but doesn't block. Lasso blocks but doesn't scan.

2. **100% local, zero cloud dependency.** All analysis runs on the user's machine. No API keys, no telemetry, no data leaves the environment. Snyk requires a cloud API for semantic analysis.

3. **Pre-extraction defense.** When scanning untrusted remote repos, structured evidence is extracted and injection patterns stripped BEFORE LLM agents see the content. No other tool does this.

4. **Supply chain depth.** Covers 7 package managers (npm/yarn/pnpm, pip/pip3/uv, brew, docker, go, cargo, gem) with OSV.dev CVE checks, Levenshtein typosquatting, age-gating (<72h packages), and npm audit integration. Snyk has URL detection. Lasso has none.

5. **Remediation pipeline.** Three-tier approach: deterministic auto-fix, LLM-generated proposals with user confirmation, and manual findings in report. Neither Snyk nor Lasso offer remediation.

6. **Cross-scanner correlation.** Toxic flow analyzer consumes output from all prior scanners to detect lethal trifecta patterns that no single scanner would flag. Runtime session guard does the same in real time.

### Complementary Usage

These tools are not mutually exclusive:

- **llm-security + Lasso**: Both hook systems run sequentially. Lasso adds 96 PostToolUse patterns focused on indirect injection; llm-security adds pre-tool blocking and broader coverage. No conflicts.
- **llm-security + Snyk**: Snyk's cloud-side semantic analysis and 12-agent auto-discovery complement the local deterministic scanning. Use both for maximum coverage.
- **llm-security + parry-guard**: ML-based injection classification (DeBERTa/Llama Guard) catches novel phrasings that regex patterns miss. Different layers, no overlap.

## Demo Scenario

### Scanning an untrusted plugin before installation

```bash
# 1. Quick scan — is this safe to install?
/security scan https://github.com/example/cool-plugin --deep

# Result: BLOCK 72/100
# - 3 CRITICAL: prompt injection in skill instructions
# - 2 HIGH: typosquatting packages (lodsh, axois)
# - 1 HIGH: toxic flow — Read(~/.ssh) -> Bash(curl)
# - 4 MEDIUM: undisclosed outbound URLs

# 2. Want to see what changed since last scan?
/security diff path/to/project

# Result: 2 NEW findings, 1 RESOLVED, 12 UNCHANGED

# 3. Set up continuous monitoring
/security watch path/to/project --interval 6h

# Reports delta every 6 hours via /loop
```

## Installation

```bash
git clone https://git.fromaitochitta.com/open/claude-code-llm-security.git \
  ~/.claude/plugins/claude-code-llm-security
```

Hooks activate immediately. No configuration required.

## Links

- **Source**: [git.fromaitochitta.com/open/claude-code-llm-security](https://git.fromaitochitta.com/open/claude-code-llm-security)
- **Full README**: See [README.md](README.md)
- **Changelog**: See [CHANGELOG.md](CHANGELOG.md)
- **License**: MIT
