Back to skill
Skillv1.0.1
ClawScan security
Wechat AutoPublish · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
BenignFeb 21, 2026, 11:55 AM
- Verdict
- benign
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- The skill's code, instructions, and resource needs match its stated purpose (automating WeChat article uploads) and do not request unrelated credentials or network endpoints, though you should secure the local config and token cache and be cautious about configurable API endpoints and uploaded file content.
- Guidance
- This skill is internally coherent for publishing to WeChat, but take these practical precautions before running: 1) Store your AppID/AppSecret in config.json and add that file to .gitignore; restrict its filesystem permissions. 2) Verify apiBaseUrl in config.json remains the official https://api.weixin.qq.com unless you intentionally test against another host — otherwise tokens and uploads could be sent to an attacker-controlled endpoint. 3) Only allow image files from trusted directories; the scripts decide upload eligibility by file extension, not by inspecting file contents, so a sensitive file renamed to e.g. .jpg could be uploaded. 4) Protect the .tokens cache directory (set restrictive permissions) or change its location if needed. 5) Review the included scripts (publish_article.py / .js) in a safe environment and, if possible, run the first tests with a throwaway test account. If you need higher assurance, run the scripts in an isolated container and audit network traffic to confirm connections go only to WeChat endpoints.
Review Dimensions
- Purpose & Capability
- okName/description, SKILL.md, and the included Python/Node scripts consistently implement a WeChat publisher: obtaining access tokens, uploading cover/body images, replacing local image src, and creating drafts. The skill uses a local config.json to hold AppID/AppSecret rather than environment variables; this is coherent with the documented usage.
- Instruction Scope
- noteRuntime instructions and scripts only interact with files referenced by the user (config.json, .tokens cache, local image files) and with the configured apiBaseUrl (defaulting to api.weixin.qq.com). They do not phone home to hidden endpoints. Caution: the scripts will open and POST any local file whose path ends with an allowed image extension (e.g., .jpg/.png). If a non-image sensitive file is renamed to have an image extension, it could be uploaded. The Node script also searches parent paths for config.json, expanding its file-read scope slightly.
- Install Mechanism
- okThis is an instruction-only skill with included source files; there is no external install/download step. Dependencies are standard (httpx for Python; axios and form-data for Node) and are proportional to the stated functionality.
- Credentials
- noteNo environment variables or platform credentials are requested by the skill; secrets are stored in a local config.json (AppID/AppSecret). That is a reasonable design choice but requires user caution: putting AppSecret in a file is normal but should be protected (gitignored, file-permissions restricted). The config allows overriding apiBaseUrl; if misconfigured (or maliciously edited) it could direct tokens and uploads to a non-WeChat endpoint.
- Persistence & Privilege
- okThe skill does not request always:true and does not modify other skills or global agent settings. It caches Access Token to a local .tokens/token_cache.json (configurable path), which is normal for this use-case; ensure that directory is secure.
