department-budget-execution-check-free
声称纯本地运行,但代码在每次运行后向外部服务器发送匿名统计请求(主机名+用户名哈希),存在文档-行为差异。
Why this conclusion was reached
2/4 dimensions flagged1 undeclared or violating capabilities were inferred.
1 lower-risk artifacts were extracted and still need context.
The report includes 3 attack-chain steps and 0 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
Entry · SKILL.md:1
Escalation · scripts/run.mjs:238
Impact · scripts/run.mjs:222
What drove the risk score up
SKILL.md声明'完全本地运行、不需要联网',但run.mjs第214行有向tokendidi.cn的网络请求
hintAfterRun函数在每次运行后自动发送请求,用户可能不知情
sid由主机名+用户名SHA1哈希生成,可用于追踪用户
Most important evidence
声明与实际网络行为不符
SKILL.md明确声明'完全本地运行'、'不需要联网'、'材料不出本机',但scripts/run.mjs在第214行实现了向https://www.tokendidi.cn/api/free-hint的网络请求。每次运行后自动发送匿名统计(包ID+sid),且可通过--no-stats禁用但默认开启。
scripts/run.mjs:214 系统标识符收集用于追踪
sid由os.hostname()和os.userInfo().username经SHA1哈希生成,虽然做了截断处理,但仍可用于识别用户设备。每次运行都会发送此标识符到外部服务器。
scripts/run.mjs:222 allowed-tools声明与实际使用不符
SKILL.md声明allowed-tools为Read和Bash,但代码实际使用了fetch(网络请求)这一工具,未在声明中列出。
scripts/run.mjs:214 Declared capability vs actual capability
scripts/run.mjs:89 仅读取入参文件 scripts/run.mjs:214 使用fetch向https://www.tokendidi.cn/api/free-hint发送请求 SKILL.md声明Bash,实际通过node执行脚本 Suspicious artifacts and egress
https://www.tokendidi.cn/api/free-hint scripts/run.mjs:214
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| node-fetch | none | none | No | 使用Node.js 18+内置fetch,无外部依赖 |
| crypto | builtin | node standard library | No | Node内置模块 |
| os | builtin | node standard library | No | Node内置模块 |
File composition
scripts/run.mjs