Trusted — Risk Score 5/100
Last scan:1 day ago Rescan
5 /100
wecom-openclaw
Integrate WeChat Work (Enterprise WeChat) with OpenClaw for intelligent messaging
This is a legitimate WeChat Work (Enterprise WeChat) webhook adapter that integrates with OpenClaw for AI-powered messaging. All base64 encoding is standard WeChat Work encryption protocol (AES-256-CBC), not obfuscation.
Skill Namewecom-openclaw
Duration37.2s
Enginepi
Safe to install
No security concerns detected. The skill can be used as documented. For production hardening, implement the optional security measures in references/security-guide.md (rate limiting, message deduplication, response filtering).

Findings 2 items

Severity Finding Location
Low
Minor disclosure gap for file/network access Doc Mismatch
SKILL.md does not explicitly mention that the adapter writes log files and makes outbound network requests, though both are standard webhook adapter behavior. The network calls are to documented WeChat Work APIs and the local OpenClaw gateway.
fs.mkdirSync(logsDir, { recursive: true });
→ Optional: Add 'Writes logs to filesystem' and 'Makes HTTPS requests to WeChat Work API and OpenClaw gateway' to SKILL.md capabilities section
scripts/index.js:43
Info
Dependency versions not pinned Supply Chain
deploy.sh uses caret ranges (^4.21.2, ^1.8.4, ^0.6.2, ^16.4.7) which allow minor/patch updates. This is a minor supply chain concern.
"express": "^4.21.2"
→ Consider pinning exact versions (4.21.2) for reproducible builds, or use a lockfile strategy
scripts/deploy.sh:29
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✓ Aligned scripts/index.js:43 - fs.mkdirSync(logsDir); scripts/index.js:48 - fs.appendFile…
Network NONE WRITE ✓ Aligned scripts/index.js:191 - POST to qyapi.weixin.qq.com; scripts/index.js:229 - POST …
Shell NONE NONE No shell execution detected
Environment NONE READ ✓ Aligned SKILL.md documents all required env vars; code reads via dotenv
4 Critical 10 findings
🔒
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(AGENT_SECRET + '=', 'base64'
scripts/index.js:94
🔒
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(echostr, 'base64'
scripts/index.js:97
🔒
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(encodingAESKey + '=', 'base64'
scripts/index.js:216
🔒
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(encryptedMsg, 'base64'
scripts/index.js:219
🔗
Medium External URL 外部 URL
https://work.weixin.qq.com
references/setup-guide.md:12
🔗
Medium External URL 外部 URL
https://your-tunnel.trycloudflare.com/webhook
references/setup-guide.md:20
🔗
Medium External URL 外部 URL
https://xxx.trycloudflare.com
references/setup-guide.md:56
🔗
Medium External URL 外部 URL
https://xxx.trycloudflare.com/webhook
references/setup-guide.md:67
🔗
Medium External URL 外部 URL
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$
scripts/index.js:192
🔗
Medium External URL 外部 URL
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$
scripts/index.js:260

File Tree

5 files · 22.5 KB · 697 lines
Markdown 3f · 321L JavaScript 1f · 310L Shell 1f · 66L
├─ 📁 references
│ ├─ 📝 security-guide.md Markdown 98L · 2.5 KB
│ └─ 📝 setup-guide.md Markdown 100L · 2.9 KB
├─ 📁 scripts
│ ├─ 🔧 deploy.sh Shell 66L · 1.7 KB
│ └─ 📜 index.js JavaScript 310L · 10.3 KB
└─ 📝 SKILL.md Markdown 123L · 5.1 KB

Dependencies 4 items

PackageVersionSourceKnown VulnsNotes
express ^4.21.2 npm No Caret range allows minor updates; no major vulnerabilities known
axios ^1.8.4 npm No Caret range allows minor updates; SSRF concerns mitigated by fixed endpoint list
xml2js ^0.6.2 npm No Caret range; XML parsing library with no critical vulnerabilities
dotenv ^16.4.7 npm No Standard env loading; no known security issues

Security Positives

✓ Base64 encoding is legitimate WeChat Work encryption protocol (AES-256-CBC with EncodingAESKey), not code obfuscation
✓ No credential harvesting or exfiltration - tokens stay in .env and are used only for intended API calls
✓ No reverse shell, C2, or unauthorized remote code execution
✓ All network calls go to documented WeChat Work APIs (qyapi.weixin.qq.com) and the local OpenClaw gateway
✓ No hidden functionality - code behavior matches SKILL.md description
✓ Logs are written locally only, no outbound log exfiltration
✓ Proper signature verification (SHA1) prevents spoofed webhook calls
✓ Async reply pattern correctly handles WeChat's 5-second timeout requirement
✓ No iterates through os.environ for sensitive keys - only reads documented env vars via dotenv