T09 · Insecure Skill Coding Practices
- Location
scripts/serve_dashboard.sh:34- Finding
Unauthenticated LAN Exposure of the OpenClaw Workspace
- Content
View full analysis
/tmp/secucheck-server.log 2>&1 & SERVER_PID=$! ``` The Skill instructions automatically invoke this server and explicitly recommend the LAN address: ```markdown ### Step 4: Auto-Open Dashboard After text report, automatically generate and serve dashboard: bash ~/.openclaw/skills/secucheck/scripts/serve_dashboard.sh The script returns JSON with `url` (LAN IP) and `local_url` (localhost). **Use the `url` field** (not localhost) when telling the user — they may access from another device. ``` ### Technical Analysis `python3 -m http.server` serves the current directory recursively. Because the script changes its working directory to `~/.openclaw/workspace`, the server exposes the entire OpenClaw workspace rather than only `secucheck-report.html`. Binding to `0.0.0.0` makes the service reachable through every available network interface. The server implements no authentication or authorization. Consequently, any host that can reach port 8766 can request other workspace files directly. The workspace scan itself identifies files such as `AGENTS.md`, `SOUL.md`, `USER.md`, `IDENTITY.md`, `TOOLS.md`, `MEMORY.md`, and `HEARTBEAT.md`. These files may contain private user information, persistent agent context, operational instructions, project data, or security-sensitive configuration. ### Attack Path 1. A user requests a security audit. 2. The Skill automatically invokes `serve_dashboard.sh`. 3. The script changes directory to `~/.openclaw/workspace`. 4. It starts an unauthenticated HTTP s ...[truncated 988 chars]- Remediation
View remediation
