Scan Report
30 /100
openclaw-cn-installer
OpenClaw 中文安装配置助手。一键检测环境、配置国产 AI 模型(DeepSeek/智谱/阿里通义)。
Undeclared shell execution via execSync in check-env.js and undocumented API key handling in setup-ai.js are minor documentation flaws without malicious intent, but they fall short of proper disclosure standards.
Safe to install
Document execSync usage and API key handling in SKILL.md. Consider using Node.js built-ins (dns module, https.request) instead of spawning shell curl processes for environment checks.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Undeclared shell execution via execSync Doc Mismatch | check-env.js:42 |
| Medium | Undocumented API key collection and local storage Doc Mismatch | setup-ai.js:47 |
| Low | Network requests to third-party APIs not declared Doc Mismatch | test-connection.js:60 |
| Low | Undocumented filesystem path access Doc Mismatch | setup-ai.js:17 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Shell | NONE | WRITE | ✗ Violation | check-env.js:42 execSync('npm config get registry') |
| Shell | NONE | WRITE | ✗ Violation | check-env.js:47 execSync('curl -s --connect-timeout 3 https://registry.npmmirror… |
| Shell | NONE | WRITE | ✗ Violation | check-env.js:58-62 execSync('which git/curl/python3') in loop |
| Filesystem | NONE | WRITE | ✓ Aligned | setup-ai.js:47 fs.writeFileSync(envFile, ...) saves API keys to ~/.openclaw/.env… |
| Filesystem | NONE | WRITE | ✓ Aligned | setup-ai.js:58 fs.writeFileSync(configFile, ...) writes ~/.openclaw/config.json … |
| Filesystem | NONE | READ | ✓ Aligned | setup-ai.js:36 fs.readFileSync(envFile, 'utf-8') reads ~/.openclaw/.env — legiti… |
| Network | NONE | READ | ✓ Aligned | test-connection.js:60-90 makes HTTPS POST requests to api.deepseek.com, open.big… |
| Environment | NONE | READ | ✓ Aligned | setup-ai.js:36-45 and test-connection.js:31-41 parse and read .env file content … |
10 findings
Medium External URL 外部 URL
https://platform.deepseek.com SKILL.md:93 Medium External URL 外部 URL
https://docs.openclaw.ai SKILL.md:107 Medium External URL 外部 URL
https://discord.com/invite/clawd SKILL.md:108 Medium External URL 外部 URL
https://registry.npmmirror.com$ check-env.js:54 Medium External URL 外部 URL
https://registry.npmmirror.com check-env.js:62 Medium External URL 外部 URL
https://api.deepseek.com setup-ai.js:20 Medium External URL 外部 URL
https://open.bigmodel.cn/api/paas/v4 setup-ai.js:28 Medium External URL 外部 URL
https://open.bigmodel.cn setup-ai.js:31 Medium External URL 外部 URL
https://dashscope.aliyuncs.com/compatible-mode/v1 setup-ai.js:36 Medium External URL 外部 URL
https://dashscope.console.aliyun.com setup-ai.js:39 File Tree
5 files · 15.1 KB · 585 lines JavaScript 3f · 425L
Markdown 1f · 124L
JSON 1f · 36L
├─
check-env.js
JavaScript
├─
package.json
JSON
├─
setup-ai.js
JavaScript
├─
SKILL.md
Markdown
└─
test-connection.js
JavaScript
Security Positives
✓ No base64-encoded payloads or obfuscated code found anywhere in the codebase
✓ No reverse shells, C2 infrastructure, or data exfiltration endpoints detected
✓ No attempts to access sensitive credential paths like ~/.ssh, ~/.aws, or system keychains
✓ API keys are stored locally in a standard dotfile (~/.openclaw/.env) rather than transmitted elsewhere
✓ HTTPS is used exclusively for all network requests; no plain HTTP or direct IP connections observed
✓ No supply chain risks: package.json has no external runtime dependencies (no require() calls for external packages)
✓ Interactive API key collection prevents accidental hardcoding of credentials in source
✓ Script shebang lines (#!/usr/bin/env node) are appropriate for a Node.js CLI tool