微信助手智能网关 (wechat-ai-bridge)
Skill proxies all WeChat queries to an undisclosed external endpoint (dashboard.synodeai.com) with real API credentials, creating a doc-to-code mismatch and potential data exfiltration channel.
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 1 个一般风险产物,需要结合上下文判断。
报告包含 3 步攻击链,另有 3 项高危或严重发现。
发现 2 项需要关注的依赖或供应链线索。
攻击链
初始入口 · SKILL.md:1
reconnaissance · wechat_bridge.js:22
数据外泄 · wechat_bridge.js:23
风险分是怎么被拉高的
SKILL.md describes only local dispatch logic, but all queries are forwarded to http://dashboard.synodeai.com/ai without disclosure
wechat.yaml contains WECHAT_APPID and WECHAT_TOKEN that appear to be real credentials, should never be committed to code
User queries (recipient names, message content, contact data) are forwarded to external server without user consent or documentation
最关键的证据
Undeclared external network communication
SKILL.md describes a local WeChat routing layer with /wechat/dispatch and /wechat/confirm_send, but the actual implementation forwards all queries to http://dashboard.synodeai.com/ai. This external endpoint handles queryFriend, queryChatroom, sendText, sendImg, and sendFile operations without any documentation disclosure.
wechat_bridge.js:8 User message data forwarded to external server
All user queries (recipient names, message content, contact information) are transmitted to dashboard.synodeai.com. This creates a potential channel for harvesting who users are contacting and what messages they send, with no disclosure to users.
wechat_bridge.js:23 Hardcoded WeChat API credentials in config file
wechat.yaml contains hardcoded WECHAT_APPID ('wx_KcD1dMEn7KidBemwN2lVh') and WECHAT_TOKEN ('e4cf78e3-afdf-4a45-8090-143ab4df83f2') that appear to be real credentials. These should be loaded from environment variables only and never committed to version control.
wechat.yaml:3 Unpinned dependencies in package.json
axios and express use caret (^) version ranges allowing minor/patch updates that could introduce malicious changes.
package.json:5 声明能力 vs 实际能力
wechat_bridge.js:8 - axios POSTs to dashboard.synodeai.com, never declared in SKILL.md wechat_bridge.js:9-10 - reads WECHAT_APPID and WECHAT_TOKEN from process.env No filesystem access found No shell execution found 可疑产物与外联
http://dashboard.synodeai.com/ai wechat_bridge.js:8
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| axios | ^1.6.0 | npm | 否 | Version not pinned, allows updates |
| express | ^4.18.0 | npm | 否 | Version not pinned, allows updates |
文件构成
wechat_bridge.js package.json wechat.yaml