Scan Report
45 /100
token-sop
本地工作流缓存技能 - 自动保存成功的工作流到本地,下次执行相同任务时自动调取,节省 Token。支持本地优先 + 云端备份。
TOKEN SOP技能存在多处文档-行为不一致:文件系统写操作未声明、默认启用云端贡献且SKILL.md声称「本地存储不传敏感数据」与实际行为矛盾、session数据自动外传至外部API,虽有PII清理但整体透明度不足。
Use with caution
将 auto_contribute 默认为 false、明确声明 filesystem 权限、补充外部云端数据流文档,并锁定 undici 版本。
Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| High | SKILL.md 声称「本地存储不传敏感数据」但默认自动云端上传 Doc Mismatch | SKILL.md:73 |
| High | 文件系统 WRITE 权限未在 permissions 中声明 Priv Escalation | src/local-store.ts:61 |
| Medium | session action trace 数据自动发送至外部端点 Data Exfil | src/cloud-client.ts:47 |
| Medium | SKILL.md 功能描述模糊,未披露核心数据处理逻辑 Doc Mismatch | SKILL.md:1 |
| Low | undici 依赖使用 ^ 浮动版本 Supply Chain | package.json:10 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | READ | WRITE | ✓ Aligned | skill.json:9 cloud POST/GET 请求为合法功能,但 endpoint 未在 SKILL.md 中声明 |
| Filesystem | NONE | WRITE | ✗ Violation | src/local-store.ts:60-65 fs.writeFileSync 写入 ~/.openclaw/workflows/ 目录,permissio… |
| Browser | READ/WRITE | READ/WRITE | ✓ Aligned | skill.json:9 声明 browser,代码中合法使用 getCurrentUrl/getDomSkeletonHash/execute |
| lobster | READ/WRITE | READ/WRITE | ✓ Aligned | skill.json:9 声明 lobster,代码中合法使用 validate/execute |
| sessions_history | READ | READ | ✓ Aligned | skill.json:9 声明 sessions_history,代码中仅读取 sessionHistory |
2 findings
Medium External URL 外部 URL
https://api.ainclaw.com SKILL.md:97 Medium External URL 外部 URL
https://clawhub.dev/skills/token-sop skill.json:7 File Tree
32 files · 74.0 KB · 2558 lines TypeScript 17f · 1405L
JavaScript 9f · 883L
JSON 4f · 143L
Markdown 2f · 127L
├─
▾
dist
│ ├─
client.d.ts
TypeScript
│ ├─
client.js
JavaScript
│ ├─
cloud-client.d.ts
TypeScript
│ ├─
cloud-client.js
JavaScript
│ ├─
index.d.ts
TypeScript
│ ├─
index.js
JavaScript
│ ├─
intent-parser.d.ts
TypeScript
│ ├─
intent-parser.js
JavaScript
│ ├─
interceptor.d.ts
TypeScript
│ ├─
interceptor.js
JavaScript
│ ├─
local-store.d.ts
TypeScript
│ ├─
local-store.js
JavaScript
│ ├─
sanitizer.d.ts
TypeScript
│ ├─
sanitizer.js
JavaScript
│ ├─
trace-compiler.d.ts
TypeScript
│ ├─
trace-compiler.js
JavaScript
│ ├─
types.d.ts
TypeScript
│ └─
types.js
JavaScript
├─
▾
src
│ ├─
cloud-client.ts
TypeScript
│ ├─
index.ts
TypeScript
│ ├─
intent-parser.ts
TypeScript
│ ├─
interceptor.ts
TypeScript
│ ├─
local-store.ts
TypeScript
│ ├─
sanitizer.ts
TypeScript
│ ├─
trace-compiler.ts
TypeScript
│ └─
types.ts
TypeScript
├─
package-lock.json
JSON
├─
package.json
JSON
├─
README.md
Markdown
├─
skill.json
JSON
├─
SKILL.md
Markdown
└─
tsconfig.json
JSON
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
undici | ^7.2.0 | npm | No | 无版本锁定,major 浮动 |
typescript | ^5.7.0 | npm-dev | No | 仅开发依赖 |
@types/node | ^22.0.0 | npm-dev | No | 仅开发依赖 |
Security Positives
✓ PII sanitizer 实现完善,对 email、phone、card、ssn、password、api_key 等敏感信息有系统化正则清理
✓ Lobster 工作流执行前有 validate 校验,防止恶意 workflow 注入
✓ 云端贡献默认有过滤逻辑(至少2步、status=success),避免无价值数据污染
✓ 代码结构清晰,模块化良好,无明显恶意代码模式(无 base64 执行、无 eval、无隐蔽网络通道)
✓ 云端请求为标准 HTTPS,非硬编码 IP,数据流向可追溯
✓ onSessionComplete 的 cloud contribute 有 try-catch,失败时静默降级不影响主流程