medusa-security
Medusa Security Skill
Identity
AI-first security scanner integration skill. Leverages Medusa's 76 scanners and 3,000+ detection patterns for comprehensive security analysis including AI/ML-specific vulnerability detection.
Capabilities
- Full Scan — All 76 scanners, comprehensive security analysis
- AI-Only Scan — Prompt injection, MCP security, agent security, RAG security
- Quick Scan — Git-changed files only for rapid development feedback
- Targeted Scan — Specific scanner categories (mcp, secrets, prompt-injection, etc.)
- SARIF Output Parsing — Standard SARIF v2.1.0 structured findings
- JSON Output Parsing — Medusa-native JSON format
- OWASP Mapping — Maps findings to OWASP Agentic AI (ASI01-10) and OWASP Top 10 (A01-10)
- Remediation Guidance — Links findings to agent-studio skills and agents
- CI/CD Integration — Fail-on thresholds, SARIF upload for GitHub Code Scanning
Prerequisites
Python 3.10+
pip install medusa-security
Check installation: python -m medusa --version
Workflow: Full Security Scan
# Step 1: Verify installation
python -m medusa --version
# Step 2: Run scan
medusa scan . --format sarif --fail-on high
# Step 3: Parse output (use scripts/main.cjs)
node .claude/skills/medusa-security/scripts/main.cjs --mode full --target .
# Step 4: Review findings by severity
# CRITICAL → immediate fix required
# HIGH → fix before release
# MEDIUM → fix in next sprint
# LOW → track and address
Workflow: AI-Only Scan
medusa scan . --format sarif --ai-only
Scans only: prompt injection (800+ patterns), MCP security (400+ patterns), agent security (500+ patterns), RAG security (300+ patterns).
Workflow: Quick Scan (Development)
medusa scan . --format sarif --quick
Only scans git-changed files. Use during development for rapid feedback.
Workflow: Targeted Scan
# MCP security only
medusa scan . --format sarif --scanners mcp-server,mcp-config
# Secrets only
medusa scan . --format sarif --scanners secrets,gitleaks,env
# AI context files only
medusa scan . --format sarif --scanners ai-context
Output Processing
The skill uses helper scripts located at .claude/skills/medusa-security/scripts/:
| Script | Purpose |
|---|---|
sarif-parser.cjs |
Parses SARIF v2.1.0 output |
json-parser.cjs |
Parses Medusa JSON output |
finding-formatter.cjs |
Formats findings with OWASP mapping |
main.cjs |
Orchestrates the full pipeline |
cli-wrapper.cjs |
Wraps Medusa CLI invocation |
security-review.cjs |
Deterministic report writer (no Glob recursion) |
Using the Pipeline
# Full scan with structured output
node .claude/skills/medusa-security/scripts/main.cjs --mode full --target .
# AI-only scan
node .claude/skills/medusa-security/scripts/main.cjs --mode ai-only --target .
# Quick scan (git-changed files)
node .claude/skills/medusa-security/scripts/main.cjs --mode quick --target .
Deterministic Security Review (Recommended in Claude sessions)
Use this when you need the final security review report and want to avoid recursive Glob timeouts:
node .claude/skills/medusa-security/scripts/security-review.cjs
This writes:
/.claude/context/reports/security/security-review-medusa-scan-2026-02-17.md
and performs fixed-path checks on:
.claude/hooks/.claude/lib/.claude/skills/medusa-security/scripts/.claude/CLAUDE.md
Important Runtime Guardrail
- Avoid recursive glob patterns like
.claude/skills/medusa-security/**/*in long sessions. - Prefer direct file reads and deterministic script entry points.
OWASP Mapping
Findings are automatically mapped to:
- OWASP Agentic AI Top 10 (ASI01-10): Goal Hijacking, Tool Misuse, Context Poisoning, etc.
- OWASP Top 10 (A01-10): Broken Access Control, Injection, Cryptographic Failures, etc.
Severity Triage
| Severity | Action | Timeline |
|---|---|---|
| CRITICAL | Immediate fix | Before any merge |
| HIGH | Fix before release | Same sprint |
| MEDIUM | Fix in next sprint | Next cycle |
| LOW | Track and address | Backlog |
Agent Integration
| Agent | Usage |
|---|---|
security-architect |
Primary consumer. Use for comprehensive security reviews. |
penetration-tester |
Use for targeted vulnerability scanning with authorization. |
code-reviewer |
Use AI-only scan as part of code review workflow. |
CI/CD Integration
# GitHub Actions example
- name: Security Scan
run: |
pip install medusa-security
medusa scan . --format sarif --fail-on high -o reports/
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: reports/medusa-results.sarif
Iron Laws
- ALWAYS verify Medusa installation before scanning —
python -m medusa --versionfirst; a missing install produces no output instead of an error, silently masking all vulnerabilities. - NEVER rely on AI-only mode as the release gate — AI-only mode misses traditional SAST patterns (SQLi, XSS, path traversal); full scan covering all 76 scanners is required for release-gate decisions.
- ALWAYS set
--fail-on highin CI/CD pipelines — without a fail threshold, pipelines pass even when CRITICAL findings exist, creating false confidence in the security posture. - NEVER skip SARIF upload to GitHub Code Scanning — local-only SARIF is lost after the build; uploading via
github/codeql-action/upload-sarif@v3persists findings for PR review, trend tracking, and compliance audit trails. - ALWAYS fix CRITICAL and HIGH findings before merging — deploying with unresolved high-severity findings expands the attack surface and nullifies the security posture gain from scanning.
Anti-Patterns
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Skipping installation check | Missing Medusa produces no output, not an error — all vulnerabilities silently missed | Run python -m medusa --version first; abort on non-zero exit |
| Using AI-only mode as a release gate | AI-only misses traditional SAST patterns (SQLi, XSS, path traversal) — 76 scanners needed for full coverage | Use full-scan mode for CI/CD gates; AI-only mode for rapid dev-time feedback only |
| No fail-on threshold in CI | Pipeline passes even when CRITICAL findings exist — false confidence in security posture | Always use --fail-on high in CI pipelines; adjust to --fail-on critical for high-risk repos |
| Ignoring MEDIUM findings | MEDIUM findings compound into exploitable chains when combined with HIGH findings | Triage MEDIUM findings each sprint; never allow them to accumulate without a tracking issue |
| Not uploading SARIF to Code Scanning | Findings live only in local files, lost after build — no PR-level review or trend tracking | Upload SARIF via github/codeql-action/upload-sarif@v3 in every CI run |
Memory Protocol
After scanning:
- Record new vulnerability patterns in
patterns.json - Log significant findings in
issues.md - Track scan history for trend analysis
- Use
recordGotcha()for recurring false positives
const manager = require('.claude/lib/memory/memory-manager.cjs');
manager.recordGotcha({
text: 'False positive: medusa flags X pattern in Y context',
area: 'security-scanning',
});
manager.recordPattern({
text: 'Prompt injection found in CLAUDE.md context files',
area: 'ai-security',
});
Related Skills
security-architect— Threat modeling and OWASP analysisstatic-analysis— CodeQL and Semgrep SARIF analysissemgrep-rule-creator— Create custom Semgrep rulesinsecure-defaults— Detect hardcoded credentialsvariant-analysis— Discover vulnerability variants