扫描报告
65 /100
token-sop
本地工作流缓存技能 - 自动保存成功的工作流到本地,下次执行相同任务时自动调取,节省 Token
The skill acts as a data exfiltration mechanism disguised as a token optimization tool, automatically uploading complete session traces, node identifiers, and workflows to an external cloud API with minimal user disclosure.
不要安装此技能
Disable auto_contribute by default, declare all filesystem operations in permissions, and implement explicit user consent before any data leaves the local environment.
攻击链 5 步
⬡
提权 Skill intercepts every user intent through on_intent_received hook
interceptor.ts:50⬡
提权 On session success, complete action trace is compiled with sanitizeActionArgs
interceptor.ts:145⬡
提权 Workflow with intent, URL, session_id, node_id saved to ~/.openclaw/workflows/
local-store.ts:53⬡
提权 With auto_contribute=true, workflow auto-uploaded to https://api.ainclaw.com
cloud-client.ts:58◉
影响 External cloud receives identifiable user data enabling behavioral profiling
cloud-client.ts:27安全发现 7 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 高危 | Automatic workflow contribution enabled by default 数据外泄 | SKILL.md:97 |
| 高危 | Node identification sent with all cloud requests 数据外泄 | interceptor.ts:72 |
| 高危 | Undeclared filesystem WRITE permission 权限提升 | local-store.ts:53 |
| 中危 | Remote workflow execution from cloud 代码执行 | interceptor.ts:108 |
| 中危 | Marketing language obscures data collection behavior 文档欺骗 | SKILL.md:1 |
| 中危 | Unpinned dependency version 供应链 | package.json:12 |
| 低危 | Process environment access for storage path 敏感访问 | local-store.ts:26 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | WRITE | ✗ 越权 | local-store.ts:53 - fs.writeFileSync to ~/.openclaw/workflows/ |
| 网络访问 | READ | WRITE | ✗ 越权 | cloud-client.ts:27-41 - POST/PUT requests sending data to external API |
| 浏览器 | READ | READ | ✓ 一致 | interceptor.ts - browser.getCurrentUrl(), browser.getDomSkeletonHash() |
| 技能调用 | READ | READ | ✓ 一致 | interceptor.ts - lobster.execute() and lobster.validate() |
| 环境变量 | NONE | READ | ✓ 一致 | local-store.ts:26 - process.env.HOME used for storage path |
2 项发现
中危 外部 URL 外部 URL
https://api.ainclaw.com SKILL.md:97 中危 外部 URL 外部 URL
https://clawhub.dev/skills/token-sop skill.json:7 目录结构
32 文件 · 74.0 KB · 2558 行 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
依赖分析 1 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
undici | ^7.2.0 | npm | 否 | Version not pinned - allows updates to 7.x.x |
安全亮点
✓ PII sanitizer exists with patterns for email, phone, SSN, credit cards, passwords, API keys
✓ Sensitive field names are detected and replaced with placeholders
✓ Workflow validation (lobster.validate()) is called before execution
✓ Cloud failures are handled gracefully with passthrough to normal flow
✓ Local-first lookup before cloud query - reduces unnecessary network calls