Why this conclusion was reached
1/4 dimensions flagged Block Declared vs actual capability 1 undeclared or violating capabilities were inferred.
Review Hidden execution and egress 15 lower-risk artifacts were extracted and still need context.
Pass Attack chain and severe findings There is no explicit malicious chain in the report.
Pass Dependencies and supply chain hygiene Dependencies are present but no obvious high-risk issue stands out.
What drove the risk score up
供应链依赖 +15
通过 npx 动态拉取第三方 npm 包 wechat-md-publisher,版本 ^1.0.2 允许次要版本更新
凭证处理外包 +10
凭证加密由上游 npm 包处理,SKILL.md 建议审计但未强制验证
可选远程端点 +5
remote-theme-api 功能可能访问第三方端点并发送文章内容
Most important evidence
Low Supply Chain
npx 动态拉取第三方 npm 包存在供应链风险
SKILL.md 和 config.json 均声明使用 `npx --yes wechat-md-publisher@^1.0.2` 动态拉取执行。版本 ^1.0.2 允许次要版本自动更新,可能引入恶意代码。
SKILL.md:54 建议使用固定版本号(如 1.0.2)而非 ^1.0.2,并在使用前审计源码
Low Credential Theft
凭证加密处理依赖外部包
SKILL.md 声明凭证(WECHAT_APP_SECRET)由 wechat-md-publisher npm 包使用 AES-256 加密存储到 ~/.config/,但未强制验证加密实现。
SKILL.md:78 建议用户在使用前审计 https://github.com/sipingme/wechat-md-publisher/blob/main/src/services/account.ts
Info Supply Chain
可选的远程主题端点可能外传数据
remote-theme-api 功能在用户使用 `theme add-remote` 时访问第三方端点,可能发送文章内容。SKILL.md 已标注警告。
SKILL.md:72 仅使用可信任的主题源
Declared capability vs actual capability
Filesystem Pass
Declared READ/WRITE
→ Inferred READ/WRITE
SKILL.md:filesystem 声明读取 *.md/*.jpg/*.png/*.gif,写入 ~/.config/wechat-md-publisher-nodejs/ Network Pass
Declared READ
→ Inferred READ
SKILL.md 声明访问 api.weixin.qq.com、mp.weixin.qq.com Shell Block
Declared NONE
→ Inferred WRITE
scripts/run.js:12 使用 spawnSync 执行 npx 命令,属于间接 shell 执行
Suspicious artifacts and egress
Medium External URL
https://mp.weixin.qq.com/ README.md:54
Medium External URL
https://www.toutiao.com/article/123 README.md:142
Medium External URL
https://api.md2wechat.cn README.md:209
Medium External URL
https://mp.we... SKILL.md:386
Medium External URL
https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html SKILL.md:626
Medium External URL
https://mp.weixin.qq.com/s/abc SKILL.md:716
Medium External URL
https://www.xiaohongshu.com/explore/xyz SKILL.md:717
Medium External URL
https://www.toutiao.com/article/7000000000000000000/ SKILL.md:807
Medium External URL
https://www.toutiao.com/article/... SKILL.md:813
Medium External URL
https://www.ip.cn/ references/ip-whitelist-guide.md:29
Medium External URL
https://ipinfo.io/ references/ip-whitelist-guide.md:30
Medium External URL
https://ifconfig.me/ references/ip-whitelist-guide.md:31
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
| wechat-md-publisher | ^1.0.2 | npm (npx) | No | 通过 npx 动态拉取,版本允许次要版本更新,存在供应链风险 |
File composition
8 files · 2131 lines Markdown 5 files · 1848 linesJavaScript 2 files · 177 linesJSON 1 files · 106 lines
Files of concern · 4
config.json JSON · 106 lines
SKILL.md Markdown · 864 lines
npx 动态拉取第三方 npm 包存在供应链风险 · 凭证加密处理依赖外部包 · 可选的远程主题端点可能外传数据 · https://mp.we... · https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html · https://mp.weixin.qq.com/s/abc · https://www.xiaohongshu.com/explore/xyz · https://www.toutiao.com/article/7000000000000000000/ · https://www.toutiao.com/article/...
README.md Markdown · 317 lines
https://mp.weixin.qq.com/ · https://www.toutiao.com/article/123 · https://api.md2wechat.cn ·
[email protected] references/ip-whitelist-guide.md Markdown · 290 lines
https://www.ip.cn/ · https://ipinfo.io/ · https://ifconfig.me/ · https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html · https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
Other files · themes.md · postinstall.js · run.js · quick-start.md
8 files · 52.2 KB · 2131 lines
Markdown 5f · 1848LJavaScript 2f · 177LJSON 1f · 106L
├─
▾
📁
references
│ ├─
📝
ip-whitelist-guide.md
Markdown
290L · 6.6 KB
│ ├─
📝
quick-start.md
Markdown
93L · 1.6 KB
│ └─
📝
themes.md
Markdown
284L · 4.7 KB
├─
▾
📁
scripts
│ ├─
📜
postinstall.js
JavaScript
75L · 2.5 KB
│ └─
📜
run.js
JavaScript
102L · 2.5 KB
├─
📝
README.md
Markdown
317L · 7.6 KB
├─
📝
SKILL.md
Markdown
864L · 23.6 KB
└─
🔑
config.json
⚠
JSON
106L · 3.1 KB
Security positives
SKILL.md 文档完整,声明了供应链风险并提供源码审计链接
权限声明与实际功能匹配(除间接 shell 执行外)
明确标注凭证敏感性(WECHAT_APP_SECRET 为 sensitive:true)
提供多层次安全提示和使用指引
凭证存储使用 AES-256 加密(依赖上游实现)
脚本代码简洁,无复杂或可疑逻辑