安全决策报告

file-transfer-thru-local-workspace

文件传输技能存在网络暴露和认证绕过风险,服务监听在0.0.0.0且支持无认证模式,允许未授权文件操作和技能包下载

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 7
IOC 1
越权项 2
发现 4
最直接的威胁证据
01
扫描发现开放端口15170的服务 初始入口 · src/upload-server.js
02
利用无认证模式访问上传API 权限提升 · src/upload-server.js
03
上传恶意文件或删除任意文件 最终危害 · src/upload-server.js

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 2 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 1 个一般风险产物,需要结合上下文判断。

阻止
攻击链与高危发现

报告包含 3 步攻击链,另有 0 项高危或严重发现。

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

攻击链

01
扫描发现开放端口15170的服务

初始入口 · src/upload-server.js:510

02
利用无认证模式访问上传API

权限提升 · src/upload-server.js:250

03
上传恶意文件或删除任意文件

最终危害 · src/upload-server.js:300

风险分是怎么被拉高的

服务暴露在0.0.0.0公网监听 +20

upload-server.js:510 在0.0.0.0:15170监听,任何网络可达的客户端都可访问

支持无认证模式 +15

install.sh和upload-server.js允许AUTH_VALUE为空,导致完全无认证访问

技能包浏览下载功能 +10

可访问workspace下所有技能目录,存在配置/密钥泄露风险

最关键的证据

中危 敏感访问

服务暴露在公网监听

upload-server.js在0.0.0.0:15170监听端口,任何可网络可达的客户端均可访问上传/下载/删除API,存在未授权访问风险

src/upload-server.js:510
改为127.0.0.1或localhost监听,仅允许本地访问
中危 文档欺骗

认证机制与文档不符

文档描述'智能认证适配',但代码允许AUTH_VALUE为空导致完全无认证,install.sh:46-48明确处理无认证场景

install.sh:46
强制要求有效认证,不允许无认证模式运行
中危 敏感访问

技能包浏览可访问所有技能目录

getSkillsList()函数读取workspace下所有技能目录,可打包下载任意技能内容,可能导致其他技能的clawhub.json等敏感配置泄露

src/upload-server.js:68
限制技能浏览范围或需要更高权限验证
低危 供应链

使用grep解析JSON配置文件

install.sh使用grep/cut解析JSON而非jq等专用工具,可能因格式差异导致解析错误或意外值提取

install.sh:31
使用jq或node -e解析JSON更可靠

声明能力 vs 实际能力

文件系统 通过
声明 WRITE
推断 WRITE
package.json permissions 声明与实际一致
网络访问 阻止
声明 listen
推断 ADMIN
upload-server.js:510 监听0.0.0.0而非localhost,暴露风险超出预期
命令执行 阻止
声明 NONE
推断 WRITE
install.sh:60使用nohup/env启动后台进程,uninstall.sh:23使用pkill

可疑产物与外联

中危 外部 URL
http://127.0.0.1:15170/

SKILL.md:228

依赖与供应链

没有结构化依赖告警。

文件构成

7 个文件 · 1904 行
HTML 1 个文件 · 688 行JavaScript 1 个文件 · 511 行Markdown 1 个文件 · 389 行Shell 2 个文件 · 183 行JSON 2 个文件 · 133 行
需关注文件 · 3
src/upload-server.js JavaScript · 511 行
服务暴露在公网监听 · 技能包浏览可访问所有技能目录
SKILL.md Markdown · 389 行
http://127.0.0.1:15170/
install.sh Shell · 138 行
认证机制与文档不符 · 使用grep解析JSON配置文件
其他文件 · upload.html · clawhub.json · uninstall.sh · package.json

安全亮点

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