Skill Trust Decision

audit-adjustment-check-free

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

Install decision first Source: ClawHub Scanned: 22 days ago
Files 4
Artifacts 1
Violations 2
Findings 3
Most direct threat evidence
01
用户阅读SKILL.md被"完全本地运行、不联网"声明吸引 Entry · SKILL.md
02
运行技能后,run.mjs在后台向外部服务器发送hostname|username哈希 Escalation · scripts/run.mjs
03
服务端可关联sid与用户主机名,建立跨运行追踪 Impact · scripts/run.mjs

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

2 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

1 lower-risk artifacts were extracted and still need context.

Block
Attack chain and severe findings

The report includes 3 attack-chain steps and 1 severe findings.

Review
Dependencies and supply chain hygiene

Dependency information is incomplete, so supply-chain confidence stays limited.

Attack Chain

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

Entry · SKILL.md:1

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

Escalation · scripts/run.mjs:222

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

Impact · scripts/run.mjs:226

What drove the risk score up

未声明的网络行为 +30

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

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

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

收集系统标识信息 +5

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

Most important evidence

High Doc Mismatch

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

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

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

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

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

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

第三方外部URL无版本锁定

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

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

Declared capability vs actual capability

Filesystem Pass
Declared READ
→
Inferred READ
SKILL.md声明Read工具;代码仅读取入参文件
Shell Block
Declared WRITE
→
Inferred NONE
SKILL.md声明Bash工具但代码未使用subprocess
Network Block
Declared NONE
→
Inferred WRITE
run.mjs:226 fetch调用外部API

Suspicious artifacts and egress

Medium External URL
https://www.tokendidi.cn/api/free-hint

scripts/run.mjs:215

Dependencies and supply chain

There are no structured dependency warnings.

File composition

4 files · 775 lines
JavaScript 2 files · 682 linesMarkdown 1 files · 90 linesJSON 1 files · 3 lines
Files of concern · 1
scripts/run.mjs JavaScript · 249 lines
SKILL.md声明与实际网络行为不符 · 收集系统标识用于远程追踪 · 第三方外部URL无版本锁定 · https://www.tokendidi.cn/api/free-hint
Other files · audit-adjustment-check.js · SKILL.md · sample.json

Security positives

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