Scan Report
5 /100
baoyu-post-to-wechat
Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP browser automation
This is a legitimate WeChat Official Account publishing skill with no malicious behavior found. All network traffic goes exclusively to WeChat's official API endpoints. The pre-scan's hardcoded IP flag at alert.ts:157 is a false positive — decimal numbers in SVG path data (0.784, 1.75) were misidentified as an IP address.
Safe to install
No action needed. The skill is safe to use for its documented purpose of posting content to WeChat Official Accounts.
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | READ | ✓ Aligned | Reads markdown/HTML files; no sensitive paths accessed |
| Filesystem | NONE | WRITE | ✓ Aligned | Writes temp HTML to os.tmpdir(); creates post-to-wechat/ dir for plain text — na… |
| Network | NONE | READ | ✓ Aligned | Downloads remote images via fetch; all network calls go to WeChat official APIs … |
| Network | NONE | WRITE | ✓ Aligned | POSTs articles and uploads images to WeChat API — the skill's core purpose |
| Shell | NONE | WRITE | ✓ Aligned | spawnSync('npx -y bun') for script execution; osascript/xdotool for browser auto… |
| Environment | NONE | READ | ✓ Aligned | Reads WECHAT_APP_ID/APP_SECRET from env and .env files — scoped to WeChat creden… |
| Browser | NONE | WRITE | ✓ Aligned | Chrome CDP automation for image-text and article browser publishing; all targets… |
| Clipboard | NONE | WRITE | ✓ Aligned | Copies HTML content and images for paste into WeChat editor — essential browser … |
1 High 27 findings
High IP Address 硬编码 IP 地址
138.112.25.25 scripts/vendor/baoyu-md/src/extensions/alert.ts:157 Medium External URL 外部 URL
https://mp.weixin.qq.com SKILL.md:322 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKEN SKILL.md:387 Medium External URL 外部 URL
https://gemini.google.com/app scripts/vendor/baoyu-chrome-cdp/src/index.test.ts:242 Medium External URL 外部 URL
https://softonit.ru/ scripts/vendor/baoyu-md/src/code-themes/1c-light.min.css:6 Medium External URL 外部 URL
https://highlightjs.org/ scripts/vendor/baoyu-md/src/code-themes/default.min.css:6 Medium External URL 外部 URL
https://creativecommons.org/licenses/by-sa/4.0 scripts/vendor/baoyu-md/src/code-themes/nnfx-dark.min.css:6 Medium External URL 外部 URL
http://www.w3.org/2000/svg scripts/vendor/baoyu-md/src/constants.ts:79 Medium External URL 外部 URL
https://marked.js.org/ scripts/vendor/baoyu-md/src/extensions/alert.ts:23 Medium External URL 外部 URL
https://groups.google.com/g/mathjax-users/c/zThKffrrCvE?pli=1 scripts/vendor/baoyu-md/src/extensions/katex.ts:26 Medium External URL 外部 URL
https://www.plantuml.com/plantuml scripts/vendor/baoyu-md/src/extensions/plantuml.ts:7 Medium External URL 外部 URL
https://plantuml.com/text-encoding scripts/vendor/baoyu-md/src/extensions/plantuml.ts:35 Medium External URL 外部 URL
https://talk.commonmark.org/t/proper-ruby-text-rb-syntax-support-in-markdown/2279 scripts/vendor/baoyu-md/src/extensions/ruby.ts:5 Medium External URL 外部 URL
https://www.w3.org/TR/ruby/ scripts/vendor/baoyu-md/src/extensions/ruby.ts:6 Medium External URL 外部 URL
https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/highlightjs/$ scripts/vendor/baoyu-md/src/utils/languages.ts:80 Medium External URL 外部 URL
https://mp.weixin.qq.com/ scripts/wechat-agent-browser.ts:6 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/token scripts/wechat-api.ts:54 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/material/add_material scripts/wechat-api.ts:55 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/draft/add scripts/wechat-api.ts:56 Medium External URL 外部 URL
https://mmbiz.qpic.cn scripts/wechat-api.ts:179 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/1c-light.min.css:4 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/agate.min.css:3 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/an-old-hope.min.css:3 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/default.min.css:4 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/felipec.min.css:3 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/nnfx-dark.min.css:4 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/tokyo-night-dark.min.css:5 File Tree
125 files · 404.2 KB · 10772 lines TypeScript 40f · 8425L
CSS 78f · 1408L
Markdown 4f · 900L
JSON 3f · 39L
├─
▾
references
│ ├─
▾
config
│ │ └─
first-time-setup.md
Markdown
│ ├─
article-posting.md
Markdown
│ └─
image-text-posting.md
Markdown
├─
▾
scripts
│ ├─
▾
vendor
│ │ ├─
▾
baoyu-chrome-cdp
│ │ │ ├─
▾
src
│ │ │ │ ├─
index.test.ts
TypeScript
│ │ │ │ └─
index.ts
TypeScript
│ │ │ └─
package.json
JSON
│ │ └─
▾
baoyu-md
│ │ ├─
▾
src
│ │ │ ├─
▾
code-themes
│ │ │ │ ├─
1c-light.min.css
CSS
│ │ │ │ ├─
a11y-dark.min.css
CSS
│ │ │ │ ├─
a11y-light.min.css
CSS
│ │ │ │ ├─
agate.min.css
CSS
│ │ │ │ ├─
an-old-hope.min.css
CSS
│ │ │ │ ├─
androidstudio.min.css
CSS
│ │ │ │ ├─
arduino-light.min.css
CSS
│ │ │ │ ├─
arta.min.css
CSS
│ │ │ │ ├─
ascetic.min.css
CSS
│ │ │ │ ├─
atom-one-dark-reasonable.min.css
CSS
│ │ │ │ ├─
atom-one-dark.min.css
CSS
│ │ │ │ ├─
atom-one-light.min.css
CSS
│ │ │ │ ├─
brown-paper.min.css
CSS
│ │ │ │ ├─
codepen-embed.min.css
CSS
│ │ │ │ ├─
color-brewer.min.css
CSS
│ │ │ │ ├─
dark.min.css
CSS
│ │ │ │ ├─
default.min.css
CSS
│ │ │ │ ├─
devibeans.min.css
CSS
│ │ │ │ ├─
docco.min.css
CSS
│ │ │ │ ├─
far.min.css
CSS
│ │ │ │ ├─
felipec.min.css
CSS
│ │ │ │ ├─
foundation.min.css
CSS
│ │ │ │ ├─
github-dark-dimmed.min.css
CSS
│ │ │ │ ├─
github-dark.min.css
CSS
│ │ │ │ ├─
github.min.css
CSS
│ │ │ │ ├─
gml.min.css
CSS
│ │ │ │ ├─
googlecode.min.css
CSS
│ │ │ │ ├─
gradient-dark.min.css
CSS
│ │ │ │ ├─
gradient-light.min.css
CSS
│ │ │ │ ├─
grayscale.min.css
CSS
│ │ │ │ ├─
hybrid.min.css
CSS
│ │ │ │ ├─
idea.min.css
CSS
│ │ │ │ ├─
intellij-light.min.css
CSS
│ │ │ │ ├─
ir-black.min.css
CSS
│ │ │ │ ├─
isbl-editor-dark.min.css
CSS
│ │ │ │ ├─
isbl-editor-light.min.css
CSS
│ │ │ │ ├─
kimbie-dark.min.css
CSS
│ │ │ │ ├─
kimbie-light.min.css
CSS
│ │ │ │ ├─
lightfair.min.css
CSS
│ │ │ │ ├─
lioshi.min.css
CSS
│ │ │ │ ├─
magula.min.css
CSS
│ │ │ │ ├─
mono-blue.min.css
CSS
│ │ │ │ ├─
monokai-sublime.min.css
CSS
│ │ │ │ ├─
monokai.min.css
CSS
│ │ │ │ ├─
night-owl.min.css
CSS
│ │ │ │ ├─
nnfx-dark.min.css
CSS
│ │ │ │ ├─
nnfx-light.min.css
CSS
│ │ │ │ ├─
nord.min.css
CSS
│ │ │ │ ├─
obsidian.min.css
CSS
│ │ │ │ ├─
panda-syntax-dark.min.css
CSS
│ │ │ │ ├─
panda-syntax-light.min.css
CSS
│ │ │ │ ├─
paraiso-dark.min.css
CSS
│ │ │ │ ├─
paraiso-light.min.css
CSS
│ │ │ │ ├─
pojoaque.min.css
CSS
│ │ │ │ ├─
purebasic.min.css
CSS
│ │ │ │ ├─
qtcreator-dark.min.css
CSS
│ │ │ │ ├─
qtcreator-light.min.css
CSS
│ │ │ │ ├─
rainbow.min.css
CSS
│ │ │ │ ├─
routeros.min.css
CSS
│ │ │ │ ├─
school-book.min.css
CSS
│ │ │ │ ├─
shades-of-purple.min.css
CSS
│ │ │ │ ├─
srcery.min.css
CSS
│ │ │ │ ├─
stackoverflow-dark.min.css
CSS
│ │ │ │ ├─
stackoverflow-light.min.css
CSS
│ │ │ │ ├─
sunburst.min.css
CSS
│ │ │ │ ├─
tokyo-night-dark.min.css
CSS
│ │ │ │ ├─
tokyo-night-light.min.css
CSS
│ │ │ │ ├─
tomorrow-night-blue.min.css
CSS
│ │ │ │ ├─
tomorrow-night-bright.min.css
CSS
│ │ │ │ ├─
vs.min.css
CSS
│ │ │ │ ├─
vs2015.min.css
CSS
│ │ │ │ ├─
xcode.min.css
CSS
│ │ │ │ └─
xt256.min.css
CSS
│ │ │ ├─
▾
extensions
│ │ │ │ ├─
alert.ts
TypeScript
│ │ │ │ ├─
footnotes.ts
TypeScript
│ │ │ │ ├─
index.ts
TypeScript
│ │ │ │ ├─
infographic.ts
TypeScript
│ │ │ │ ├─
katex.ts
TypeScript
│ │ │ │ ├─
markup.ts
TypeScript
│ │ │ │ ├─
plantuml.ts
TypeScript
│ │ │ │ ├─
ruby.ts
TypeScript
│ │ │ │ ├─
slider.ts
TypeScript
│ │ │ │ └─
toc.ts
TypeScript
│ │ │ ├─
▾
themes
│ │ │ │ ├─
base.css
CSS
│ │ │ │ ├─
default.css
CSS
│ │ │ │ ├─
grace.css
CSS
│ │ │ │ ├─
modern.css
CSS
│ │ │ │ └─
simple.css
CSS
│ │ │ ├─
▾
utils
│ │ │ │ └─
languages.ts
TypeScript
│ │ │ ├─
cli.ts
TypeScript
│ │ │ ├─
constants.ts
TypeScript
│ │ │ ├─
content.test.ts
TypeScript
│ │ │ ├─
content.ts
TypeScript
│ │ │ ├─
document.test.ts
TypeScript
│ │ │ ├─
document.ts
TypeScript
│ │ │ ├─
extend-config.ts
TypeScript
│ │ │ ├─
html-builder.test.ts
TypeScript
│ │ │ ├─
html-builder.ts
TypeScript
│ │ │ ├─
images.test.ts
TypeScript
│ │ │ ├─
images.ts
TypeScript
│ │ │ ├─
index.ts
TypeScript
│ │ │ ├─
render.ts
TypeScript
│ │ │ ├─
renderer.test.ts
TypeScript
│ │ │ ├─
renderer.ts
TypeScript
│ │ │ ├─
themes.ts
TypeScript
│ │ │ └─
types.ts
TypeScript
│ │ └─
package.json
JSON
│ ├─
cdp.ts
TypeScript
│ ├─
check-permissions.ts
TypeScript
│ ├─
copy-to-clipboard.ts
TypeScript
│ ├─
md-to-wechat.ts
TypeScript
│ ├─
package.json
JSON
│ ├─
paste-from-clipboard.ts
TypeScript
│ ├─
wechat-agent-browser.ts
TypeScript
│ ├─
wechat-api.ts
TypeScript
│ ├─
wechat-article.ts
TypeScript
│ ├─
wechat-browser.ts
TypeScript
│ └─
wechat-extend-config.ts
TypeScript
└─
SKILL.md
Markdown
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
baoyu-md | file: vendor/baoyu-md/package.json | local vendor | No | Bundled vendor library; not from npm registry |
baoyu-chrome-cdp | file: vendor/baoyu-chrome-cdp/package.json | local vendor | No | Bundled vendor library; not from npm registry |
Security Positives
✓ All network requests exclusively target WeChat official APIs (api.weixin.qq.com, mp.weixin.qq.com) — no third-party endpoints
✓ No exfiltration of credentials; app_id/app_secret only sent to WeChat token endpoint
✓ No base64-encoded payloads, reverse shells, or obfuscated code
✓ Chrome automation uses standard CDP with legitimate flags (--disable-blink-features, --start-maximized)
✓ Credentials support multi-source loading (env > .env) with clear documentation
✓ No credential values ever written to stdout/logs — only success/failure status
✓ Shell subprocess usage is confined to known tooling: bun runtime, macOS accessibility APIs, Linux xdotool/ydotool
✓ No access to sensitive paths such as ~/.ssh, ~/.aws, or system config directories
✓ Environment variable access is scoped to WECHAT_* prefixed keys only
✓ Temp files written to os.tmpdir() with unique prefixes and cleaned up after use
✓ No curl|bash, pip install from untrusted sources, or other supply chain risks