T05 · Unauthorized Access and Privilege Escalation
Error
- Location
SKILL.md:55- Finding
Unsanitized Path Parameters Permit Traversal Outside the Shared Vault
- Content
View full analysis
/` 2) Prefer checking an `INDEX.md` if present; otherwise search by recency. 3) If `--date` is provided, narrow to that date folder first. ``` `SKILL.md:73`: ```markdown - `--permanent ` permanent-doc mode (ONLY propose updates unless `--apply`) ``` ### Technical Analysis The skill constructs filesystem locations using the user-controlled `project`, `date`, and `target_doc_path` parameters. Its instructions do not require these values to be validated, canonicalized, or checked against an allowed root directory. Consequently, absolute paths or traversal components such as `..` may cause the resolved path to escape the intended directories: - `$HOME/.openclaw/shared/handoff/` - `$HOME/.openclaw/shared/knowledge/` The `load` workflow is particularly exposed because it directs the agent to search, read, and summarize matching files without requiring confirmation for reads. The confirmation-before-writing rule reduces accidental modification risk but does not prevent unauthorized file disclosure. For permanent documents, explicit confirmation is required before modification, but the instructions still fail to ensure that the target is actually inside the permanent knowledge directory. ### Attack Path 1. An attacker invokes the load workflow with a traversal-based project value, for example: ```text /handoff load ../../../../ ``` 2. The agent interpolates the supplied value into: ```text $HOME/.openclaw/shared/handoff// ``` 3. Filesystem path resolution escapes the shared handoff directory. 4. Following the skill instructions, the agent searches the resulting external directory for an ` ...[truncated 1144 chars]- Remediation
View remediation
