Skill Trust Decision

file-transfer-thru-local-workspace

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

Install decision first Source: ClawHub Scanned: Apr 6, 2026
Files 7
Artifacts 1
Violations 2
Findings 4
Most direct threat evidence
01
扫描发现开放端口15170的服务 Entry · src/upload-server.js
02
利用无认证模式访问上传API Escalation · src/upload-server.js
03
上传恶意文件或删除任意文件 Impact · src/upload-server.js

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

2 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

1 lower-risk artifacts were extracted and still need context.

Block
Attack chain and severe findings

The report includes 3 attack-chain steps and 0 severe findings.

Review
Dependencies and supply chain hygiene

Dependency information is incomplete, so supply-chain confidence stays limited.

Attack Chain

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

Entry · src/upload-server.js:510

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

Escalation · src/upload-server.js:250

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

Impact · src/upload-server.js:300

What drove the risk score up

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

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

支持无认证模式 +15

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

技能包浏览下载功能 +10

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

Most important evidence

Medium Sensitive Access

服务暴露在公网监听

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

src/upload-server.js:510
改为127.0.0.1或localhost监听,仅允许本地访问
Medium Doc Mismatch

认证机制与文档不符

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

install.sh:46
强制要求有效认证,不允许无认证模式运行
Medium Sensitive Access

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

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

src/upload-server.js:68
限制技能浏览范围或需要更高权限验证
Low Supply Chain

使用grep解析JSON配置文件

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

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

Declared capability vs actual capability

Filesystem Pass
Declared WRITE
Inferred WRITE
package.json permissions 声明与实际一致
Network Block
Declared listen
Inferred ADMIN
upload-server.js:510 监听0.0.0.0而非localhost,暴露风险超出预期
Shell Block
Declared NONE
Inferred WRITE
install.sh:60使用nohup/env启动后台进程,uninstall.sh:23使用pkill

Suspicious artifacts and egress

Medium External URL
http://127.0.0.1:15170/

SKILL.md:228

Dependencies and supply chain

There are no structured dependency warnings.

File composition

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

Security positives

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