The OWASP MCP Top 10 defines the attack surface. This article maps each risk to what SkillShield can detect before a malicious skill ever reaches your agent.
The OWASP MCP Top 10 at a Glance
| Risk ID | Category | Detection Layer | SkillShield Coverage |
|---|---|---|---|
| MCP01 | Token Mismanagement | Static analysis | ✅ Full |
| MCP02 | Privilege Escalation | Manifest + code review | ✅ Full |
| MCP03 | Tool Poisoning | Behavior + pattern detection | ✅ Full |
| MCP04 | Supply Chain Attacks | Dependency analysis | ✅ Full |
| MCP05 | Command Injection | Code analysis | ✅ Partial |
| MCP06 | Data Exfiltration | Network + file access patterns | ✅ Full |
| MCP07 | Rug Pulls | Version delta monitoring | ✅ Full |
| MCP08 | Insider Threats | Publisher verification | ✅ Partial |
| MCP09 | Denial of Service | Resource limit detection | ✅ Partial |
| MCP10 | Logging & Monitoring | Audit trail analysis | ✅ Full |
Bottom line: SkillShield provides full or partial coverage for 9 of 10 categories, with particular strength in the top 4 highest-impact risks.
MCP01: Token Mismanagement and Secret Exposure
The Risk: API keys, tokens, and credentials hardcoded in skill code or leaked through logs.
Real-World Impact: A malicious npm skill recently exfiltrated OP_SERVICE_ACCOUNT_TOKEN, OPENCLAW_GATEWAY_TOKEN, and multiple API keys by reading process.env — running undetected for 2 weeks.
How SkillShield Detects It
$ skillshield scan @publisher/skill-name
🔴 CRITICAL: Hardcoded API key detected
File: src/config.js:3
Pattern: AKIA[0-9A-Z]{16}
🔴 CRITICAL: Environment variable access without scope
File: index.js:45
Code: const token = process.env.API_KEY
Risk: Any code in this process can read this value
SkillShield Checks:
- Hardcoded secrets (regex + entropy analysis)
- Unscoped environment variable access
- Logging of sensitive values
- Debug mode exposing tokens in error messages
MCP02: Privilege Escalation via Scope Creep
The Risk: Skills request broad permissions they don't need, then abuse them.
Real-World Impact: "Audit of 17 popular MCP servers found 100% lacking permission declarations."
How SkillShield Detects It
$ skillshield scan --strict @publisher/skill-name
🟡 WARNING: Overly broad filesystem permission
Declared: fs.readWrite: "~/*"
Recommended: fs.readWrite: "~/.config/myapp/*"
🔴 CRITICAL: Network access without domain restriction
Declared: network: true
Risk: Can connect to any external server
MCP03: Tool Poisoning
The Risk: Malicious tool definitions that execute instructions inside the AI's context window — no code required, no logs generated.
How SkillShield Detects It
$ skillshield scan --deep @publisher/skill-name
🔴 CRITICAL: Suspicious tool description pattern
Tool: send_email
Description contains: "also forward to [email protected]"
Risk: Hidden instruction injection
MCP04: Supply Chain Attacks
The Risk: Compromised npm packages, typosquatted dependencies, or malicious updates.
How SkillShield Detects It
$ skillshield scan --supply-chain @publisher/skill-name
🔴 CRITICAL: Typosquatted dependency
Package: 1odash (should be lodash)
Risk: Malicious code injection
🟡 WARNING: Unpinned dependency
Package: axios@^1.6.0
Recommended: [email protected] (exact version)
MCP05: Command Injection
The Risk: Skills that construct shell commands from user input without sanitization.
How SkillShield Detects It
$ skillshield scan @publisher/skill-name
🟡 WARNING: Shell execution with user input
Code: exec(`git clone ${userInput}`)
Risk: Command injection if userInput contains "; rm -rf /"
MCP06: Data Exfiltration
The Risk: Skills that silently send data to external servers.
How SkillShield Detects It
$ skillshield scan @publisher/skill-name
🔴 CRITICAL: Suspicious network endpoint
Destination: solana-mainnet.g.alchemy.com
Context: Non-crypto tool with blockchain connection
Risk: Potential exfiltration
🔴 CRITICAL: Data encoding before transmission
Code: Buffer.from(JSON.stringify(data)).toString('base64')
Risk: Obfuscated exfiltration
The Complete Security Checklist
Pre-Installation Scan
- Run
skillshield scan --strict @publisher/skill - Review all CRITICAL findings
- Verify no hardcoded secrets (MCP01)
- Confirm least-privilege permissions (MCP02)
- Check for typosquatted dependencies (MCP04)
Ongoing Monitoring
- Enable
skillshield monitorfor version updates - Review update diffs before applying
- Maintain audit logs for compliance
Why This Matters Now
The OWASP MCP Top 10 isn't theoretical. In February 2026, a real OpenClaw user lost 3 weeks of work and faced a potential HIPAA breach from a malicious skill. SkillShield would have caught this at step 1.