安全决策报告

audit-adjustment-check-free

SKILL.md声明"完全本地运行、不联网、不发送材料",但run.mjs在运行结束后向外部服务器https://www.tokendidi.cn/api/free-hint发送主机名+用户名哈希的匿名标识,违反声明。

安装决策优先 来源: ClawHub 扫描时间: 2026/9/19
文件 4
IOC 1
越权项 2
发现 3
最直接的威胁证据
01
用户阅读SKILL.md被"完全本地运行、不联网"声明吸引 初始入口 · SKILL.md
02
运行技能后,run.mjs在后台向外部服务器发送hostname|username哈希 权限提升 · scripts/run.mjs
03
服务端可关联sid与用户主机名,建立跨运行追踪 最终危害 · scripts/run.mjs

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

阻止
攻击链与高危发现

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

复核
依赖与供应链卫生

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

攻击链

01
用户阅读SKILL.md被"完全本地运行、不联网"声明吸引

初始入口 · SKILL.md:1

02
运行技能后,run.mjs在后台向外部服务器发送hostname|username哈希

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

03
服务端可关联sid与用户主机名,建立跨运行追踪

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

风险分是怎么被拉高的

未声明的网络行为 +30

SKILL.md声明不联网,但run.mjs:226向https://www.tokendidi.cn/api/free-hint发送请求

文档欺骗(SKILL.md声明不一致) +15

文档明确写"不联网、不发送材料、不写任何文件",代码却有fetch请求

收集系统标识信息 +5

发送hostname|username的SHA1哈希,可能用于用户追踪

最关键的证据

高危 文档欺骗

SKILL.md声明与实际网络行为不符

文档明确声明"完全本地运行:不联网、不需要API Key、没有调用次数上限"、"不发送你的材料、不写任何文件",但代码在运行结束后向https://www.tokendidi.cn/api/free-hint发送匿名安装标识(sid)和包标识(id)。

scripts/run.mjs:226
在SKILL.md allowed-tools中补充网络权限声明,并明确说明发送哪些数据、为何目的、第4次运行后才返回"完整档说明"。
中危 敏感访问

收集系统标识用于远程追踪

代码收集os.hostname()和os.userInfo().username的SHA1哈希作为匿名安装标识,可能用于跨运行追踪用户。SKILL.md未提及此行为。

scripts/run.mjs:222
明确告知用户会收集哪些标识、用途为何、提供Opt-out机制。
低危 供应链

第三方外部URL无版本锁定

硬编码外部URL https://www.tokendidi.cn/api/free-hint 无版本控制,存在URL被篡改风险。

scripts/run.mjs:215
考虑将外部API的URL或域名作为配置项暴露给用户,或说明如何验证其真实性。

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
SKILL.md声明Read工具;代码仅读取入参文件
命令执行 阻止
声明 WRITE
→
推断 NONE
SKILL.md声明Bash工具但代码未使用subprocess
网络访问 阻止
声明 NONE
→
推断 WRITE
run.mjs:226 fetch调用外部API

可疑产物与外联

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

scripts/run.mjs:215

依赖与供应链

没有结构化依赖告警。

文件构成

4 个文件 · 775 行
JavaScript 2 个文件 · 682 行Markdown 1 个文件 · 90 行JSON 1 个文件 · 3 行
需关注文件 · 1
scripts/run.mjs JavaScript · 249 行
SKILL.md声明与实际网络行为不符 · 收集系统标识用于远程追踪 · 第三方外部URL无版本锁定 · https://www.tokendidi.cn/api/free-hint
其他文件 · audit-adjustment-check.js · SKILL.md · sample.json

安全亮点

核心检查逻辑(engine/)仅使用Node.js标准库,无外部依赖
代码结构清晰,引擎自包含、不依赖网络
材料处理在本地完成,不上传用户财务数据
有完善的退出码和错误处理
材料不足时不输出"未发现问题",诚实告知缺什么