微信公众号发布工具

PassAudited by VirusTotal on May 11, 2026.

Overview

Type: OpenClaw Skill Name: wechat-mp-publish-skill Version: 1.0.2 The bundle is a comprehensive and well-documented tool for automating WeChat Official Account publishing, including Markdown rendering and AI-driven image generation. It exhibits high security awareness, featuring dedicated scripts to redact sensitive information from logs and source code (cleanup_logs.py, cleanup_secrets.py) and providing detailed self-conducted OWASP security audits. While the audits identify potential vulnerabilities such as plain-text token caching, the developer has implemented mitigations like strict file permissions (0o600) and environment variable substitution, indicating responsible development rather than malicious intent.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Anyone who can read that cache file could potentially use the account token until it expires, including for publishing-related actions.

Why it was flagged

The skill caches a WeChat access token that can be used to act as the public account. File mode 600 helps, but the token is still stored in plaintext and this is not clearly surfaced in the main metadata.

Skill content
"access_token": self._access_token ... with open(self.cache_file, 'w', encoding='utf-8') as f: json.dump(cache, f, ensure_ascii=False, indent=2) ... os.chmod(self.cache_file, 0o600)
Recommendation

Store tokens in an OS keychain or encrypted store, document the cache location, and provide a clear cleanup/rotation command.

What this means

A mistaken or premature invocation could send content to the public WeChat account audience rather than only saving a draft.

Why it was flagged

The skill exposes direct public/mass publishing capability. This is central to the skill, but the primary instructions do not explicitly require a draft preview or user confirmation before direct publication.

Skill content
python publish.py --publish "文章标题" "文章内容" ... **WeChatAPI** ... `publish_all()` - 群发消息
Recommendation

Default to draft mode, require explicit user confirmation for `--publish`/mass-send actions, and show the final title/content/template before publishing.

What this means

Local logs may reveal information about unpublished drafts or uploaded media if another process or user can access them.

Why it was flagged

The included audit acknowledges that logs can retain WeChat media IDs, draft IDs, and image URLs. These persistent artifacts may expose account-related publishing data.

Skill content
H-02: 日志文件可能泄露敏感信息 ... media_id 未完全脱敏 ... 草稿 ID 可能被利用 ... 图片 URL 暴露公众号信息
Recommendation

Reduce logged identifiers, rotate logs, make cleanup paths relative to the skill directory, and document where logs are stored.

What this means

Untrusted or copied article content could be transformed into unsafe HTML and propagated into a public publishing channel, even if WeChat later filters some content.

Why it was flagged

The audit reports that Markdown is converted to HTML without filtering dangerous tags before the content is sent into a publishing workflow.

Skill content
Markdown 转 HTML 可能存在 XSS ... html = markdown.markdown(...) ... return html  # ❌ 未过滤危险标签
Recommendation

Sanitize HTML with a strict allowlist before draft or publication, and preview the sanitized result before sending it to WeChat.

What this means

If enabled, scheduled publishing may run later without the user actively watching each post.

Why it was flagged

The guide documents an optional persistent scheduled publishing setup. It is user-directed and purpose-aligned, but it can continue running after setup.

Skill content
创建定时任务(macOS) ... launchctl load ~/Library/LaunchAgents/com.wechat.publish.plist
Recommendation

Use scheduled mode only for reviewed content, document how to disable it, and require approval before any scheduled job performs direct publication.

What this means

Users need to install Python dependencies locally and should understand that this adds third-party code to the environment.

Why it was flagged

The skill requires local package installation even though registry metadata says there is no install spec. The provided requirements are version-pinned, so this is mainly an install-disclosure gap rather than evidence of malicious behavior.

Skill content
pip install -r requirements.txt
Recommendation

Declare the install step and dependencies in metadata/install specs, keep versions pinned, and install in a virtual environment.

What this means

Installing users must provide secrets that let the tool access their WeChat publishing account and optional image services.

Why it was flagged

The skill requires WeChat account credentials and optional image-provider API keys, but registry metadata lists no required environment variables or primary credential. The credential need is purpose-aligned and disclosed in the documentation.

Skill content
编辑 config.yaml 填入 AppID 和 AppSecret ... export DALL_E_API_KEY="sk-..."
Recommendation

Document all required and optional credentials in registry metadata, prefer environment variables or a secret manager, and avoid committing populated config files.