token-sop
The skill implements legitimate workflow caching but contains documentation deception claiming 'no sensitive data upload' while actually uploading all session workflows to cloud by default, plus configuration bypass that ignores user settings.
SKILL.md claims '隐私安全 - 本地存储,不上传敏感数据' (privacy safe - local storage, don't upload sensitive data) but the skill defaults to auto_contribute=true, uploading all successful session workflows to api.ainclaw.com
SKILL.md:14 Why this conclusion was reached
2/4 dimensions flagged2 undeclared or violating capabilities were inferred.
2 lower-risk artifacts were extracted and still need context.
The report includes 0 attack-chain steps and 2 severe findings.
1 dependency or supply-chain issues need attention.
What drove the risk score up
SKILL.md states '不上传敏感数据' but auto_contribute defaults to true, uploading all workflows
Code hardcodes {enabled:true} ignoring user config.get('local_store_enabled')
filesystem:WRITE not declared in permissions but used for ~/.openclaw/workflows
Most important evidence
Misleading privacy claim
SKILL.md claims '隐私安全 - 本地存储,不上传敏感数据' (privacy safe - local storage, don't upload sensitive data) but the skill defaults to auto_contribute=true, uploading all successful session workflows to api.ainclaw.com
SKILL.md:14 Configuration bypass - local_store_enabled ignored
The interceptor hardcodes {storageDir:'', enabled:true} in multiple places, completely ignoring the user's local_store_enabled config setting
src/interceptor.ts:58 Undeclared filesystem write access
skill.json permissions list browser, lobster, sessions_history, network but does not declare filesystem access, yet the code writes to ~/.openclaw/workflows
skill.json:11 Automatic workflow exfiltration to cloud
onSessionComplete hook automatically compiles and uploads session traces to cloud without explicit user consent beyond the deceptive 'privacy' claim
src/interceptor.ts:120 Falls back to /root for HOME
DEFAULT_STORAGE_DIR uses process.env.HOME || '/root', potentially storing workflows in root directory if HOME is unset
src/local-store.ts:36 Declared capability vs actual capability
src/local-store.ts:36 - fs.writeFileSync(filePath, JSON.stringify(data)) src/cloud-client.ts:45 - POST to /v1/lobsters/contribute sends full workflow data skill.json:permissions includes browser src/interceptor.ts:122 - reads history.actions for compilation skill.json:permissions includes lobster Suspicious artifacts and egress
https://api.ainclaw.com SKILL.md:45
https://clawhub.dev/skills/token-sop skill.json:7
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| undici | ^7.2.0 | npm | No | HTTP client, version pinned with caret |
| typescript | ^5.7.0 | devDependencies | No | Build tool only |
| @types/node | ^22.0.0 | devDependencies | No | Type definitions only |
File composition
src/interceptor.ts src/local-store.ts