This report was generated in Chinese. Some content may be in Chinese.
Suspicious — Risk Score 45/100
Last scan:4 hr ago Rescan
45 /100
file-transfer-thru-local-workspace
通过网页上传/下载文件到本地OpenClaw workspace,技能浏览下载
文件传输技能存在网络暴露和认证绕过风险,服务监听在0.0.0.0且支持无认证模式,允许未授权文件操作和技能包下载
Skill Namefile-transfer-thru-local-workspace
Duration47.2s
Enginepi
ClawHub file-transfer-thru-local-workspace v3.1.1 by chengwang86
📥 262
ClawHub Verdict Suspicious dangerous_execllm_suspiciousvt_suspicious
Use with caution
1. 强制要求认证,不允许无认证模式;2. 监听地址改为127.0.0.1而非0.0.0.0;3. 限制技能包浏览范围;4. 添加IP白名单或绑定到本地回环接口

Attack Chain 3 steps

Entry 扫描发现开放端口15170的服务
src/upload-server.js:510
Escalation 利用无认证模式访问上传API
src/upload-server.js:250
Impact 上传恶意文件或删除任意文件
src/upload-server.js:300

Findings 4 items

Severity Finding Location
Medium
服务暴露在公网监听 Sensitive Access
upload-server.js在0.0.0.0:15170监听端口,任何可网络可达的客户端均可访问上传/下载/删除API,存在未授权访问风险
server.listen(PORT, '0.0.0.0', () => {...})
→ 改为127.0.0.1或localhost监听,仅允许本地访问
src/upload-server.js:510
Medium
认证机制与文档不符 Doc Mismatch
文档描述'智能认证适配',但代码允许AUTH_VALUE为空导致完全无认证,install.sh:46-48明确处理无认证场景
AUTH_VALUE=""  # 当未找到配置时为空
→ 强制要求有效认证,不允许无认证模式运行
install.sh:46
Medium
技能包浏览可访问所有技能目录 Sensitive Access
getSkillsList()函数读取workspace下所有技能目录,可打包下载任意技能内容,可能导致其他技能的clawhub.json等敏感配置泄露
const SKILLS_DIR = path.join(WORKSPACE, 'skills');
→ 限制技能浏览范围或需要更高权限验证
src/upload-server.js:68
Low
使用grep解析JSON配置文件 Supply Chain
install.sh使用grep/cut解析JSON而非jq等专用工具,可能因格式差异导致解析错误或意外值提取
GATEWAY_TOKEN=$(grep -o '"token": *"[^"]*"' ...)
→ 使用jq或node -e解析JSON更可靠
install.sh:31
ResourceDeclaredInferredStatusEvidence
Filesystem WRITE WRITE ✓ Aligned package.json permissions 声明与实际一致
Network listen ADMIN ✗ Violation upload-server.js:510 监听0.0.0.0而非localhost,暴露风险超出预期
Shell NONE WRITE ✗ Violation install.sh:60使用nohup/env启动后台进程,uninstall.sh:23使用pkill
1 findings
🔗
Medium External URL 外部 URL
http://127.0.0.1:15170/
SKILL.md:228

File Tree

7 files · 62.1 KB · 1904 lines
HTML 1f · 688L JavaScript 1f · 511L Markdown 1f · 389L Shell 2f · 183L JSON 2f · 133L
├─ 📁 src
│ ├─ 📜 upload-server.js JavaScript 511L · 19.7 KB
│ └─ 📄 upload.html HTML 688L · 22.4 KB
├─ 📋 clawhub.json JSON 95L · 2.4 KB
├─ 🔧 install.sh Shell 138L · 5.1 KB
├─ 📋 package.json JSON 38L · 885 B
├─ 📝 SKILL.md Markdown 389L · 9.4 KB
└─ 🔧 uninstall.sh Shell 45L · 2.2 KB

Security Positives

✓ 使用path.basename()防止路径遍历攻击
✓ 使用spawn执行zip命令而非直接eval shell字符串
✓ 有基本的Token认证机制(虽然可能为空)
✓ 文件操作限定在uploads目录内