安全决策报告

department-budget-execution-check-free

声称纯本地运行,但代码在每次运行后向外部服务器发送匿名统计请求(主机名+用户名哈希),存在文档-行为差异。

安装决策优先 来源: ClawHub 扫描时间: 2026/9/19
文件 4
IOC 1
越权项 1
发现 3
最直接的威胁证据
01
用户执行技能核对财务表 初始入口 · SKILL.md
02
运行结束后自动触发hintAfterRun发送统计请求 权限提升 · scripts/run.mjs
03
主机名+用户名哈希的sid被发送至tokendidi.cn服务器 最终危害 · scripts/run.mjs

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

阻止
攻击链与高危发现

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

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

攻击链

01
用户执行技能核对财务表

初始入口 · SKILL.md:1

02
运行结束后自动触发hintAfterRun发送统计请求

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

03
主机名+用户名哈希的sid被发送至tokendidi.cn服务器

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

风险分是怎么被拉高的

文档-行为差异 +20

SKILL.md声明'完全本地运行、不需要联网',但run.mjs第214行有向tokendidi.cn的网络请求

隐藏的远程通信 +15

hintAfterRun函数在每次运行后自动发送请求,用户可能不知情

系统标识收集 +10

sid由主机名+用户名SHA1哈希生成,可用于追踪用户

最关键的证据

中危 文档欺骗

声明与实际网络行为不符

SKILL.md明确声明'完全本地运行'、'不需要联网'、'材料不出本机',但scripts/run.mjs在第214行实现了向https://www.tokendidi.cn/api/free-hint的网络请求。每次运行后自动发送匿名统计(包ID+sid),且可通过--no-stats禁用但默认开启。

scripts/run.mjs:214
删除隐藏的网络请求功能,或在SKILL.md中明确声明存在匿名统计功能并说明收集的数据范围。
低危 敏感访问

系统标识符收集用于追踪

sid由os.hostname()和os.userInfo().username经SHA1哈希生成,虽然做了截断处理,但仍可用于识别用户设备。每次运行都会发送此标识符到外部服务器。

scripts/run.mjs:222
如需统计功能,应在文档中明确说明,并提供真正匿名的方案。
低危 权限提升

allowed-tools声明与实际使用不符

SKILL.md声明allowed-tools为Read和Bash,但代码实际使用了fetch(网络请求)这一工具,未在声明中列出。

scripts/run.mjs:214
如使用网络功能,应在allowed-tools中声明fetch或network相关权限。

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
scripts/run.mjs:89 仅读取入参文件
网络访问 阻止
声明 NONE
→
推断 WRITE
scripts/run.mjs:214 使用fetch向https://www.tokendidi.cn/api/free-hint发送请求
命令执行 通过
声明 WRITE
→
推断 WRITE
SKILL.md声明Bash,实际通过node执行脚本

可疑产物与外联

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

scripts/run.mjs:214

依赖与供应链

包名版本来源漏洞备注
node-fetch none none 否 使用Node.js 18+内置fetch,无外部依赖
crypto builtin node standard library 否 Node内置模块
os builtin node standard library 否 Node内置模块

文件构成

4 个文件 · 696 行
JavaScript 2 个文件 · 610 行Markdown 1 个文件 · 83 行JSON 1 个文件 · 3 行
需关注文件 · 1
scripts/run.mjs JavaScript · 250 行
声明与实际网络行为不符 · 系统标识符收集用于追踪 · allowed-tools声明与实际使用不符 · https://www.tokendidi.cn/api/free-hint
其他文件 · department-budget-execution-check.js · SKILL.md · sample.json

安全亮点

引擎代码(department-budget-execution-check.js)仅使用Node标准库,无外部依赖
引擎明确声明不发起任何网络请求,与实际代码一致
提供了--no-stats选项可禁用统计功能
未外发用户的实际财务数据
代码结构清晰,注释详细