Security scanner for Claude Code Skills — 9 engines detect malicious patterns, data exfiltration, dangerous ops across 71K+ skills
npx skills add https://github.com/claude-world/claude-skill-antivirus --skill super-helperCLI를 사용하여 이 스킬을 설치하고 작업 공간에서 SKILL.md 워크플로 사용을 시작하세요.
A security scanner and safe installer for Claude Code Skills. Detects malicious patterns, data exfiltration attempts, and dangerous operations before installing third-party skills.
Compatible with Claude Code using Opus 4.6, Sonnet 4.6, and Haiku 4.5 models.
We scanned all 71,577 skills on SkillsMP:
| Risk Level | Count | Percentage |
|---|---|---|
| CRITICAL | 91 | 0.13% |
| HIGH | 626 | 0.87% |
| MEDIUM | 1,310 | 1.83% |
| SAFE | 69,505 | 97.11% |
~3% of skills may have potential risks. See full report for details.
Note: Some findings may be false positives (e.g., legitimate 1Password/Bitwarden integrations). Manual review is recommended for flagged skills.
9 Security Scanning Engines:
Risk Assessment: Critical, High, Medium, Low, and Info levels
Multilingual Support: English and Traditional Chinese (繁體中文)
Install or Scan-Only Mode: Review skills before installation
Interactive Prompts: Guided decision-making for risky installations
npm install -g claude-skill-antivirus
Or run directly with npx:
npx claude-skill-antivirus <skill-source>
# Install to project level (./.claude/skills/) - default
skill-install ./path/to/skill
skill-install https://github.com/user/skill-repo
# Install to user level (~/.claude/skills/)
skill-install ./path/to/skill --global
skill-install @skillsmp/example-skill -g
Installation paths:
./.claude/skills/--global): ~/.claude/skills/skill-install ./path/to/skill --scan-only
# English (default)
skill-install ./path/to/skill --lang en
# Traditional Chinese
skill-install ./path/to/skill --lang zh-TW
claude-skill-av ./path/to/skill --scan-only
# Scan all skills from SkillsMP (requires API key)
skill-batch-scan --api-key <your-api-key>
# Scan with options
skill-batch-scan --api-key <key> --max-pages 10 --verbose
skill-batch-scan --api-key <key> --output ./my-reports --lang zh-TW
Options:
-k, --api-key <key> - SkillsMP API key (required)-l, --limit <number> - Skills per page (default: 100)-p, --max-pages <number> - Maximum pages to scan (default: all)-o, --output <dir> - Output directory for reports (default: ./scan-reports)-v, --verbose - Show verbose output--lang <lang> - Language (en, zh-TW)Detects commands that can cause system damage:
| Risk Level | Detection Items |
|---|---|
| Critical | rm -rf /, curl | bash, fork bombs |
| High | Reading /etc/shadow, reverse shells, credential theft |
| Medium | rm -rf, permission changes, service control |
| Low | sudo, global package installs |
Analyzes allowed-tools declarations:
Bash(*) - Unrestricted shell accessWrite, WebFetch, broad bash permissionsRead, Glob, Grep, version control toolsRead + WebFetch = data exfiltration riskIdentifies suspicious network activity:
Detects:
Specifically detects malicious behavior of reading local data and sending it externally:
| Category | Detection Items |
|---|---|
| Data Collection | Reading .ssh, .aws, .env, browser passwords, password managers |
| Data Exfiltration | curl -d, netcat transfers, DNS tunneling, email exfiltration |
| Combined Attacks | cat | base64 | curl, tar | nc, find -exec curl |
| Env Variable Theft | env | curl, printenv exfiltration |
| System Recon | whoami, hostname, network config exfiltration |
| Persistence | Modifying .bashrc, scheduled cron exfiltration |
Detects security risks in MCP Server configurations:
| Category | Detection Items |
|---|---|
| Untrusted Sources | Non-official MCP servers, direct URL execution |
| Dangerous Permissions | Unrestricted filesystem access, shell execution, database access |
| Sensitive Config | Environment variables with credentials, exposed config |
| Dangerous Combinations | Filesystem + Fetch, Shell + Network |
Detects Server-Side Request Forgery and cloud attacks:
| Category | Detection Items |
|---|---|
| Cloud Metadata | AWS/GCP/Azure 169.254.169.254, IAM credential theft |
| Internal Network | 10.x.x.x, 192.168.x.x, 172.16-31.x.x probing |
| SSRF Bypass | Hex IP, URL encoding, file://, gopher:// |
| Kubernetes | API access, secrets theft, serviceaccount |
| Docker | docker.sock access, privileged containers, container escape |
Detects malicious or vulnerable dependencies:
| Category | Detection Items |
|---|---|
| Known Malicious | event-stream, ua-parser-js, colors, faker |
| Typosquatting | crossenv, lodash-, mongose, reqeusts |
| Suspicious Install | URL installs, insecure registry, HTTP index |
| postinstall Risks | Install scripts with curl, wget, eval |
Detects Task tool and sub-agent abuse:
| Category | Detection Items |
|---|---|
| Privilege Escalation | Task spawning Bash agent, requesting all permissions |
| Prompt Injection | Sub-agent prompts with malicious commands |
| Agent Chain Attacks | Nested Task calls, recursive agents |
| DoS Attacks | Loop Task calls, infinite recursion |
| Data Theft | Read + WebFetch combinations, accessing sensitive data |
🔧 Claude Skill Installer v2.0.0
📦 Skill loaded: example-safe-skill
🔍 Starting security scan...
===========================================
SECURITY SCAN REPORT
===========================================
Risk Level: ✅ SAFE
📊 Findings Summary:
🟢 CRITICAL: 0
🟢 HIGH: 0
🟢 MEDIUM: 0
🟢 LOW: 0
ℹ️ INFO: 2
✅ Recommendation: Safe to install
🔧 Claude Skill Installer v2.0.0
📦 Skill loaded: suspicious-skill
🔍 Starting security scan...
===========================================
SECURITY SCAN REPORT
===========================================
Risk Level: ☠️ CRITICAL
📊 Findings Summary:
🔴 CRITICAL: 5
🟠 HIGH: 3
🟡 MEDIUM: 2
🟢 LOW: 1
ℹ️ INFO: 4
🔴 CRITICAL Findings:
• [Data Collection] Reading sensitive credential files
Attempts to read environment variables, private keys or credential files
• [Data Exfiltration] curl sending command output
Using curl to send command execution results to external server
...
❌ Recommendation: DO NOT INSTALL - Contains critical security risks
| Level | Score Impact | Action |
|---|---|---|
| CRITICAL | -30/item | Block installation |
| HIGH | -20/item | Require explicit confirmation |
| MEDIUM | -10/item | Show warning |
| LOW | -5/item | Show in verbose mode |
| INFO | 0 | Always show |
You can also use the scanner programmatically:
import { SecurityScanner, loadSkill } from 'claude-skill-antivirus';
const scanner = new SecurityScanner();
const skill = await loadSkill('./path/to/skill');
const findings = await scanner.scan(skill);
console.log(findings);
// {
// critical: [...],
// high: [...],
// medium: [...],
// low: [...],
// info: [...]
// }
claude-skill-antivirus/
├── src/
│ ├── index.js # CLI entry point
│ ├── i18n/ # Internationalization
│ │ ├── index.js
│ │ ├── en.js # English translations
│ │ └── zh-TW.js # Traditional Chinese translations
│ ├── scanner/
│ │ ├── index.js # Main scanner (integrates 9 engines)
│ │ ├── dangerous-commands.js # Dangerous command detection
│ │ ├── permissions.js # Permission checking
│ │ ├── external-connections.js # External connection analysis
│ │ ├── patterns.js # Pattern matching
│ │ ├── data-exfiltration.js # Data exfiltration detection
│ │ ├── mcp-security.js # MCP Server security check
│ │ ├── ssrf-scanner.js # SSRF/cloud attack detection
│ │ ├── dependency-scanner.js # Dependency security check
│ │ └── subagent-scanner.js # Sub-agent attack detection
│ └── utils/
│ ├── downloader.js # Skill downloader
│ └── installer.js # Skill installer
├── examples/
│ ├── safe-skill/ # Safe example
│ └── malicious-skill/ # Malicious example (tests all engines)
├── package.json
└── README.md
allowed-toolsContributions are welcome! Please feel free to submit issues and pull requests.
Each scanner is modular. To add new patterns:
src/scanner/pattern, risk, title, descriptionMIT
Lucas Wang [email protected]