OpenClaw Skill Scanner

v1.0.0

Scans ClawHub skills for malicious patterns like payloads, reverse shells, data leaks, and crypto miners before and after installation.

1· 1.7k·3 current·3 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (skill scanner) align with the provided files: scanner.py implements regex-based detection and install-hook.sh wraps a pre-install scan + safe installation. There are no unrelated required binaries or external credentials requested.
Instruction Scope
SKILL.md and install-hook.sh instruct the agent to download a skill (via the openclaw CLI), scan the downloaded files with scanner.py, then copy the skill into ~/.openclaw/workspace/skills based on the risk score. The script reads only the local whitelist.json and the downloaded skill files; it does not attempt to read unrelated system config or environment variables beyond $HOME. Behavior stays within the scanner/install scope.
Install Mechanism
No install spec (instruction-only with helper scripts). All code is shipped with the skill; there are no external archive downloads in the skill itself. The only network action is delegated to the user's openclaw CLI (used to fetch skills), which is expected for a pre-install scanner.
Credentials
The skill requires no environment variables, no credentials, and only references local paths (its own directory and the user's ~/.openclaw workspace). This is proportionate to its purpose. It does rely on the presence of python3 and the openclaw CLI to fetch remote skills (both are reasonable requirements).
Persistence & Privilege
The installer copies scanned skills into ~/.openclaw/workspace/skills — appropriate for an install hook but worth noting because it will modify the user's skill directory. always:false (no forced global inclusion) and the skill does not try to modify other skills' config. Blacklist entries in whitelist.json are enforced locally and cannot be overridden by --force.
Assessment
This package is a local scanner + safe-install wrapper and appears coherent with that purpose. Before installing or using it: 1) Review whitelist.json (it contains local whitelist/blacklist decisions and will block blacklisted slugs). 2) Ensure you trust the openclaw CLI used to download skills (install-hook.sh delegates downloading to that tool). 3) Understand the scanner is regex-based and can produce false positives (it will flag common patterns like subprocess/os.system, long base64 strings, and network calls). 4) Because install-hook.sh copies files into ~/.openclaw/workspace/skills, run it in a sandbox or inspect scan reports before allowing suspicious installs. 5) If you need higher assurance, audit the remainder of scanner.py for any outbound network calls (none were found in the provided fragments) and run scans on known-good samples to calibrate false positive rates.

Like a lobster shell, security has layers — review code before you run it.

latestvk97cs3z0pztqazhbjp4dg1p0nx80hbz3
1.7kdownloads
1stars
1versions
Updated 4w ago
v1.0.0
MIT-0

Skill Scanner

Name: skill-scanner Version: 1.0.0 Author: vrtlly.us Category: Security

Description

Scans ClawHub skills for malicious patterns before and after installation. Detects base64 payloads, reverse shells, data exfiltration, crypto miners, obfuscated URLs, and more.

Usage

Scan all installed skills

python3 scanner.py

Scan a specific skill

python3 scanner.py --skill <skill-name>

Scan a specific file

python3 scanner.py --file <path-to-file>

Pre-install scan (download → scan → report → cleanup)

python3 scanner.py --pre-install <clawhub-slug>

JSON output

python3 scanner.py --json
python3 scanner.py --skill <name> --json

Safe install hook

bash install-hook.sh <clawhub-slug>
bash install-hook.sh <clawhub-slug> --force

Detection Patterns

CategoryWhat it catches
Base64 payloadsLong base64 strings near exec/bash/eval
Pipe to shellcurl ... | bash, wget ... | sh
Raw IP connectionshttp://1.2.3.4 style URLs
Dangerous functionseval(), exec(), os.system(), subprocess(shell=True)
Hidden filesDotfile creation in unexpected places
Env exfiltrationReading .env, API keys sent outbound
Obfuscated URLsrentry.co, pastebin, hastebin redirectors
Fake dependenciesReferences to non-existent packages
Data exfil endpointswebhook.site, requestbin, etc.
Crypto miningxmrig, stratum, mining pool references
Password archivesPassword-protected zip/tar downloads

Risk Scores

  • 0-29 (Green): Clean — no suspicious patterns found
  • 30-69 (Yellow): Suspicious — review warnings before use
  • 70-100 (Red): Dangerous — likely malicious, do not install

Files

  • scanner.py — Main scanner engine
  • install-hook.sh — Safe installation wrapper
  • whitelist.json — Known-good and known-bad skill lists
  • report-template.md — Markdown report template

Comments

Loading comments...