Suspicious — Risk Score 45/100
Last scan:12 hr ago Rescan
45 /100
token-sop
本地工作流缓存技能 - 自动保存成功的工作流到本地,下次执行相同任务时自动调取,节省 Token。支持本地优先 + 云端备份。
TOKEN SOP技能存在多处文档-行为不一致:文件系统写操作未声明、默认启用云端贡献且SKILL.md声称「本地存储不传敏感数据」与实际行为矛盾、session数据自动外传至外部API,虽有PII清理但整体透明度不足。
Skill Nametoken-sop
Duration75.3s
Enginepi
Use with caution
将 auto_contribute 默认为 false、明确声明 filesystem 权限、补充外部云端数据流文档,并锁定 undici 版本。

Findings 5 items

Severity Finding Location
High
SKILL.md 声称「本地存储不传敏感数据」但默认自动云端上传 Doc Mismatch
SKILL.md 营销文案明确声明「隐私安全:工作流保存在本地,不上传敏感数据」,但 skill.json 中 auto_contribute 默认为 true,onSessionComplete 会将完整 session action trace、intent、URL、node_id POST 到 https://api.ainclaw.com/v1/lobsters/contribute。PII虽经sanitizer清理但URL、行为序列等元数据仍外传。
auto_contribute | true | 自动贡献到云端
→ 将 auto_contribute 默认值改为 false;在 SKILL.md 中明确告知用户云端数据流,包含具体上传字段列表;提供明确的用户知情同意机制。
SKILL.md:73
High
文件系统 WRITE 权限未在 permissions 中声明 Priv Escalation
local-store.ts 对 ~/.openclaw/workflows/ 执行完整的文件系统操作(fs.writeFileSync、fs.readFileSync、fs.mkdirSync、fs.unlinkSync),但 skill.json 的 permissions 数组中无 filesystem 声明,SKILL.md 中也无文件系统相关描述。
fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
→ 在 skill.json permissions 中添加 filesystem 声明,并说明存储目录和用途。
src/local-store.ts:61
Medium
session action trace 数据自动发送至外部端点 Data Exfil
每次 session 成功后,onSessionComplete 将包含完整 action traces、intent、URL、dom_skeleton_hash、node_id、session_id 的数据 POST 到 api.ainclaw.com。虽然 PII 经 sanitizer 清理,但浏览器历史行为模式、URL 访问模式、node_id 等均为敏感元数据,且用户无明确感知。
lobster_workflow: workflow, session_id: session_id
→ 明确告知用户数据外传范围;在 SKILL.md 配置章节详细列出上传字段;提供 opt-in 机制而非默认开启。
src/cloud-client.ts:47
Medium
SKILL.md 功能描述模糊,未披露核心数据处理逻辑 Doc Mismatch
SKILL.md 使用大量营销语言(省钱、快速、智能)而非技术描述,缺少对关键机制的技术说明:1) 拦截 intent 的实际行为;2) 本地缓存命中后的执行逻辑;3) 云端贡献的完整数据流。用户无法基于真实信息做安全决策。
TOKEN SOP - 让你的 Token 翻倍用
→ 重写 SKILL.md,移除营销语言,补充技术架构说明:数据流图、权限需求、存储位置、上传字段清单。
SKILL.md:1
Low
undici 依赖使用 ^ 浮动版本 Supply Chain
package.json 中 undici 版本为 ^7.2.0,major 版本浮动可能在后续引入不兼容变更或已知漏洞。
"undici": "^7.2.0"
→ 锁定为精确版本(如 7.2.0)或使用 ~7.2.0 允许 patch 更新。
package.json:10
ResourceDeclaredInferredStatusEvidence
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 26L · 758 B
│ ├─ 📜 client.js JavaScript 71L · 2.6 KB
│ ├─ 📜 cloud-client.d.ts TypeScript 10L · 502 B
│ ├─ 📜 cloud-client.js JavaScript 69L · 2.3 KB
│ ├─ 📜 index.d.ts TypeScript 8L · 328 B
│ ├─ 📜 index.js JavaScript 13L · 724 B
│ ├─ 📜 intent-parser.d.ts TypeScript 13L · 416 B
│ ├─ 📜 intent-parser.js JavaScript 53L · 1.8 KB
│ ├─ 📜 interceptor.d.ts TypeScript 21L · 932 B
│ ├─ 📜 interceptor.js JavaScript 212L · 8.5 KB
│ ├─ 📜 local-store.d.ts TypeScript 46L · 1.4 KB
│ ├─ 📜 local-store.js JavaScript 220L · 6.5 KB
│ ├─ 📜 sanitizer.d.ts TypeScript 21L · 687 B
│ ├─ 📜 sanitizer.js JavaScript 132L · 3.7 KB
│ ├─ 📜 trace-compiler.d.ts TypeScript 14L · 558 B
│ ├─ 📜 trace-compiler.js JavaScript 110L · 3.6 KB
│ ├─ 📜 types.d.ts TypeScript 136L · 3.4 KB
│ └─ 📜 types.js JavaScript 3L · 135 B
├─ 📁 src
│ ├─ 📜 cloud-client.ts TypeScript 85L · 2.3 KB
│ ├─ 📜 index.ts TypeScript 9L · 329 B
│ ├─ 📜 intent-parser.ts TypeScript 66L · 1.8 KB
│ ├─ 📜 interceptor.ts TypeScript 265L · 8.1 KB
│ ├─ 📜 local-store.ts TypeScript 229L · 5.1 KB
│ ├─ 📜 sanitizer.ts TypeScript 158L · 3.7 KB
│ ├─ 📜 trace-compiler.ts TypeScript 140L · 3.6 KB
│ └─ 📜 types.ts TypeScript 158L · 3.3 KB
├─ 📋 package-lock.json JSON 59L · 1.8 KB
├─ 📋 package.json JSON 18L · 517 B
├─ 📝 README.md Markdown 29L · 671 B
├─ 📋 skill.json JSON 52L · 1.5 KB
├─ 📝 SKILL.md Markdown 98L · 2.2 KB
└─ 📋 tsconfig.json JSON 14L · 283 B

Dependencies 3 items

PackageVersionSourceKnown VulnsNotes
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,失败时静默降级不影响主流程