Skill Trust Decision

asset-disposal-check-free

声称完全本地运行不联网,但代码实际向外部服务器发送遥测数据(主机名+用户名哈希),存在文档-行为严重不符。

Install decision first Source: ClawHub Scanned: Sep 19, 2026
Files 4
Artifacts 1
Violations 1
Findings 4
Most direct threat evidence
01
用户安装技能,阅读SKILL.md获知声称完全本地运行 Entry · SKILL.md
02
技能运行时收集hostname和username生成追踪标识 Escalation · scripts/run.mjs
03
通过fetch()将追踪标识发送到外部服务器完成数据外传 Impact · scripts/run.mjs

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

1 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 2 severe findings.

Review
Dependencies and supply chain hygiene

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

Attack Chain

01
用户安装技能,阅读SKILL.md获知声称完全本地运行

Entry · SKILL.md:1

02
技能运行时收集hostname和username生成追踪标识

Escalation · scripts/run.mjs:207

03
通过fetch()将追踪标识发送到外部服务器完成数据外传

Impact · scripts/run.mjs:215

What drove the risk score up

文档声明与实际行为不符 +25

SKILL.md声明'不联网、不发送你的材料',但run.mjs向外部URL发送hostname|username哈希

未声明的网络访问 +15

fetch()到https://www.tokendidi.cn/api/free-hint,SKILL.md未声明网络权限

声明宽泛的allowed-tools +5

声明Bash但代码未实际使用,存在权限过申

Most important evidence

High Doc Mismatch

文档声称离线运行但实际有网络行为

SKILL.md明确声明'不联网、不需要API Key、没有调用次数上限'以及'不发送你的材料、不写任何文件',但run.mjs第215-226行在hintAfterRun()函数中通过fetch()向https://www.tokendidi.cn/api/free-hint发送请求,包含包标识和匿名安装标识(sid)。

scripts/run.mjs:215
删除网络请求代码或明确在文档中声明此项遥测行为
High Data Exfil

收集并外传系统标识信息

代码收集主机名和用户名,通过SHA1哈希生成匿名安装标识(sid)后发送到外部服务器。尽管SHA1哈希不直接暴露明文,但结合外部URL可形成用户追踪能力。

scripts/run.mjs:207
移除此遥测代码或使用完全匿名的统计方式
Medium Priv Escalation

声明Bash权限但未实际使用

SKILL.md声明allowed-tools包含Bash,但scripts/run.mjs和engine/asset-disposal-check.js均未使用subprocess或shell命令,存在权限过申。

SKILL.md:15
移除Bash声明,仅保留Read权限
Low Sensitive Access

读取用户名信息

使用os.userInfo()读取当前用户名用于生成安装标识。

scripts/run.mjs:208
考虑移除用户名收集

Declared capability vs actual capability

Filesystem Pass
Declared READ
→
Inferred READ
—
Shell Pass
Declared WRITE
→
Inferred NONE
—
Network Block
Declared NONE
→
Inferred READ
scripts/run.mjs:215-226 fetch()调用外部API

Suspicious artifacts and egress

Medium External URL
https://www.tokendidi.cn/api/free-hint

scripts/run.mjs:215

Dependencies and supply chain

There are no structured dependency warnings.

File composition

4 files · 646 lines
JavaScript 2 files · 565 linesMarkdown 1 files · 78 linesJSON 1 files · 3 lines
Files of concern · 2
scripts/run.mjs JavaScript · 249 lines
文档声称离线运行但实际有网络行为 · 收集并外传系统标识信息 · 读取用户名信息 · https://www.tokendidi.cn/api/free-hint
SKILL.md Markdown · 78 lines
声明Bash权限但未实际使用
Other files · asset-disposal-check.js · sample.json

Security positives

核心检查逻辑(engine/)使用纯Node标准库,无外部依赖
代码逻辑清晰,财务核对功能正常
材料不足时明确不给结论,符合设计规范
未访问敏感文件路径如~/.ssh或.env