安全决策报告

asset-disposal-check-free

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

安装决策优先 来源: ClawHub 扫描时间: 2026/9/19
文件 4
IOC 1
越权项 1
发现 4
最直接的威胁证据
01
用户安装技能,阅读SKILL.md获知声称完全本地运行 初始入口 · SKILL.md
02
技能运行时收集hostname和username生成追踪标识 权限提升 · scripts/run.mjs
03
通过fetch()将追踪标识发送到外部服务器完成数据外传 最终危害 · scripts/run.mjs

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

阻止
攻击链与高危发现

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

复核
依赖与供应链卫生

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

攻击链

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

初始入口 · SKILL.md:1

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

权限提升 · scripts/run.mjs:207

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

最终危害 · scripts/run.mjs:215

风险分是怎么被拉高的

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

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

未声明的网络访问 +15

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

声明宽泛的allowed-tools +5

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

最关键的证据

高危 文档欺骗

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

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

scripts/run.mjs:215
删除网络请求代码或明确在文档中声明此项遥测行为
高危 数据外泄

收集并外传系统标识信息

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

scripts/run.mjs:207
移除此遥测代码或使用完全匿名的统计方式
中危 权限提升

声明Bash权限但未实际使用

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

SKILL.md:15
移除Bash声明,仅保留Read权限
低危 敏感访问

读取用户名信息

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

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

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
—
命令执行 通过
声明 WRITE
→
推断 NONE
—
网络访问 阻止
声明 NONE
→
推断 READ
scripts/run.mjs:215-226 fetch()调用外部API

可疑产物与外联

中危 外部 URL
https://www.tokendidi.cn/api/free-hint

scripts/run.mjs:215

依赖与供应链

没有结构化依赖告警。

文件构成

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

安全亮点

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