Back to skill
Skillv1.0.0

ClawScan security

skill_install · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

SuspiciousFeb 26, 2026, 12:56 AM
Verdict
suspicious
Confidence
medium
Model
gpt-5-mini
Summary
The skill-installer script matches its stated purpose (installing OpenClaw skills) but contains unsafe file-handling (unsanitized zip extraction to a predictable /tmp path and use of copytree), which could allow path-traversal or filesystem overwrite attacks — proceed with caution and inspect ZIPs and run in a sandbox.
Guidance
This package appears to do what it claims, but the installer code has two practical safety issues you should consider before running it on a production machine: - Zip path traversal (zip-slip): the script calls zipfile.extractall() without sanitizing member paths. A malicious ZIP could include filenames like ../../etc/passwd or absolute paths and cause files to be written outside the intended temp folder. Always inspect ZIP contents before running (e.g., unzip -l my-skill.zip) and verify member paths. - Predictable temp dir and copy semantics: the script extracts to a fixed /tmp/openclaw_skill_temp and then uses shutil.copytree to overwrite the skills directory. An attacker on the same system could exploit the predictable temp path (symlink/TOCTOU). Also installing untrusted ZIPs as root can overwrite system-wide files. Recommendations: - Only install skill ZIPs from trusted sources and inspect their contents first (list files, check for .. or absolute paths, review scripts inside). - Run the installer as a non-root user and avoid running on production systems; prefer a sandbox or VM for initial testing. - Consider patching the script to use a secure temporary directory (tempfile.mkdtemp), validate/normalize zip paths before extraction, and refuse entries with absolute paths or '..' components. - Backup OpenClaw installation or test in a disposable environment before installing. If you can share the specific ZIP(s) you intend to install or run the script in a controlled environment, confidence in safety could be raised after verifying those archives and/or fixing the extraction logic.

Review Dimensions

Purpose & Capability
okName, description, SKILL.md, README, and scripts/skill_install.py all align: the package is an installer for OpenClaw skills and only requires python3 and write access to the OpenClaw skills directory.
Instruction Scope
concernThe runtime instructions and the script perform local filesystem discovery, unzip provided archives, copy files into the global skills directory, and restart the Gateway — all expected for an installer. However the script uses zipfile.extractall without sanitizing member paths (risk of zip-slip/path traversal) and extracts to a predictable /tmp/openclaw_skill_temp (risk of symlink/TOCTOU attacks). These behaviors expand the attack surface beyond benign install operations.
Install Mechanism
noteThis is instruction + included script (no remote install). There are no remote downloads or network calls in the code. That lowers remote supply-chain risk, but because it runs local extraction and writes into system-level node_modules locations, local file-safety is important.
Credentials
okThe skill requests only python3 and no environment variables or credentials; this is proportionate to an installer that manipulates local files.
Persistence & Privilege
noteThe skill writes files into the OpenClaw skills directory and restarts the OpenClaw Gateway (openclaw daemon restart) — this is expected for installing new skills. It does not request always:true and does not modify other skills' configs beyond copying the installed skill files.