Back to skill
Skillv1.0.0
ClawScan security
Douyin Upload · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
ReviewMar 15, 2026, 1:24 AM
- Verdict
- Review
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- The skill mostly does what it says (generate content/images and call a local 'sau' CLI to publish), but there are several mismatches and risky coding choices (hard-coded user paths, use of shell execution, and undeclared use of an API key) that warrant caution before installing or running it.
- Guidance
- What to consider before installing or running this skill: - Validity and provenance: The package appears to come from a developer snapshot (hard-coded paths like /Users/yiwanjun and a sau.sh wrapper pointing to a local venv). Confirm the source or sanitize those paths before use. - OpenAI key: The code optionally uses OPENAI_API_KEY for content/image generation. Although optional, if you provide a key it will be used for network calls to OpenAI. The registry metadata did not declare this env var formally — set keys carefully and use a limited-scope key if possible. - Review the 'sau' tool: The publisher runs an external CLI named 'sau' to perform the actual Douyin upload. That CLI is out-of-band (not provided here). Verify the provenance and behavior of any 'sau' binary you install; do not run untrusted 'sau' binaries. - Shell execution risk: Publishing runs a constructed command string via subprocess.run(..., shell=True). Filenames include the user-provided theme without robust sanitization when used in the command string. Avoid passing untrusted input as theme, or modify the code to call subprocess with a list of args (no shell=True) or properly escape/sanitize file names. - Hard-coded paths: Edit scripts/config.py to point WORKSPACE_DIR and other paths to safe, user-controlled locations (e.g., under your own home) before running. Remove or modify sau.sh's hard-coded PROJECT_DIR if you plan to use it. - Run in isolation when testing: Execute the skill in a constrained environment (non-root account, container, or VM) first to inspect created files (~/.openclaw/workspace, logs, and any .env files). Check logs for unexpected network calls or outputs. - Minimal permissions: Do not provide system-wide credentials or secrets. If you must provide an API key, consider rotating it and restricting its permissions. If you want a safer posture: ask the publisher for a sanitized release (no developer-specific paths), a manifest declaring OPENAI_API_KEY usage, and a change to run external commands without shell=True. Given the current issues, treat this package as 'use after manual review' rather than safe-to-install automatically.
Review Dimensions
- Purpose & Capability
- noteThe code implements content generation, image creation, and publishing via a 'sau' CLI which aligns with the stated Douyin-upload purpose. However several configuration values are hard-coded to a specific developer user path (/Users/yiwanjun/...), and the included sau.sh wrapper points at a local project venv path — these are unusual for a published, generic skill and suggest the package was packaged from a developer's local environment rather than sanitized for distribution.
- Instruction Scope
- okRuntime instructions in SKILL.md match the code: generate markdown, create a cover, then run the sau CLI to publish. The skill does access one environment variable (OPENAI_API_KEY) for optional image/content generation (documented in SKILL.md). The code only reads and writes files within the configured workspace and does not attempt to read unrelated system secrets or other user data.
- Install Mechanism
- noteThere is no registry install spec (instruction-only in metadata) but the bundle includes an install.sh and Python requirements. The install script runs pip install -r scripts/requirements.txt and creates local workspace directories; it does not download arbitrary archives from unknown servers. The presence of a sau.sh wrapper referencing a developer-local path is odd and may mislead users if they copy it to /usr/local/bin without editing.
- Credentials
- concernThe registry metadata declares no required env vars, yet the code and SKILL.md reference OPENAI_API_KEY as an optional input and the install script writes a .env placeholder. That environment variable access is plausible for higher-quality generation, but the mismatch between declared requirements and actual code usage is a coherence issue. Also the skill will create files under a hard-coded WORKSPACE_DIR pointing to another user's home by default; that is unexpected and should be configurable.
- Persistence & Privilege
- okThe skill does not request 'always: true' and does not attempt to modify other skills or system-wide agent settings. It writes logs and artifacts under its workspace directories and creates a .env file during install; that is normal for a local utility but users should review created files and paths.
