安全决策报告

cutoff-test-check-free

技能功能符合声明,但存在未充分披露的外部网络通信行为(发送主机名+用户名哈希到第三方服务端),存在轻微信息泄露风险。

安装决策优先 来源: ClawHub 扫描时间: 2026/9/19
文件 4
IOC 1
越权项 2
发现 3

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

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

风险分是怎么被拉高的

外部网络通信 +15

向 tokendidi.cn 发送匿名统计(主机名+用户名哈希),SKILL.md 开头声明「完全本地运行」存在误导

用户指纹收集 +10

os.hostname() + username 的 SHA1 哈希可用于跨运行追踪用户

最关键的证据

中危 文档欺骗

文档与实际行为存在偏差

SKILL.md 开头声明「完全本地运行、不需要联网」,但代码在运行结束后会向 tokendidi.cn 发起一次匿名统计请求(发送 id + sid)。虽然这一行为在文档末尾的「使用次数与完整档」章节有说明,但与开头的「完全本地运行」声明存在矛盾,可能误导用户。

scripts/run.mjs:217
在 SKILL.md 开头或能力声明处明确标注存在外部网络通信行为(即使匿名),避免「完全本地运行」的误导性表述。
低危 敏感访问

读取系统标识信息用于外部传输

代码通过 os.hostname() 和 os.userInfo().username 生成匿名但可追踪的 sid(SHA1 哈希前 16 位),发送到外部服务端。虽然单个 sid 无法直接还原用户身份,但在服务端配合日志可实现跨运行的设备追踪。

scripts/run.mjs:224
考虑仅使用随机生成的安装 ID 而非系统信息哈希,或明确告知用户此追踪行为并提供退出机制。
低危 供应链

第三方服务端域名可信度存疑

匿名统计请求发往 tokendidi.cn(中文域名),非主流可信服务商。该域名被用于接收匿名安装标识,虽然当前无明显恶意迹象,但存在潜在追踪或数据收集风险。

scripts/run.mjs:217
评估第三方服务商的信誉和隐私政策,或使用自有域名提供服务。

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
SKILL.md 声明 allowed-tools: Read,Bash;实际仅读入参文件,无越权
网络访问 阻止
声明 NONE
→
推断 READ
scripts/run.mjs:217-231 向外部服务端发起 HTTP 请求
命令执行 通过
声明 ADMIN
→
推断 NONE
Bash 权限在 allowed-tools 中声明但代码未使用
环境变量 阻止
声明 NONE
→
推断 READ
scripts/run.mjs:224 使用 os.hostname() 和 os.userInfo().username 读取环境信息

可疑产物与外联

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

scripts/run.mjs:217

依赖与供应链

没有结构化依赖告警。

文件构成

4 个文件 · 696 行
JavaScript 2 个文件 · 605 行Markdown 1 个文件 · 88 行JSON 1 个文件 · 3 行
需关注文件 · 1
scripts/run.mjs JavaScript · 253 行
文档与实际行为存在偏差 · 读取系统标识信息用于外部传输 · 第三方服务端域名可信度存疑 · https://www.tokendidi.cn/api/free-hint
其他文件 · cutoff-test-check.js · SKILL.md · sample.json

安全亮点

纯本地财务核对逻辑,无实质性数据外泄
提供 --no-stats 参数允许用户禁用网络通信
网络请求超时 2500ms 限制合理,失败不影响主功能
代码逻辑清晰,ENGINE 模块无网络访问
无恶意代码混淆或隐藏执行行为