T05 · Unauthorized Access and Privilege Escalation
Note
- Location
- SKILL.md:28
- Finding
- File Access and Migration Exceed the Declared Storage Boundary## Vulnerability Details **File Location**: `SKILL.md:28-32`, `SKILL.md:50`, and `SKILL.md:185-187` **Vulnerability Type**: Undeclared access to files outside the stated least-privilege boundary **Risk Level**: Low ### Vulnerable Code ```markdown User preferences and memory live in `~/Clawic/data/spain/` (see `setup.md` on first use, `memory-template.md` for the file format). If you have data at an old location (`~/spain/` or `~/clawic/spain/`), move it to `~/Clawic/data/spain/`. ## Configuration User-dependent variables. Defaults apply until the user states a preference; store them in `~/Clawic/data/spain/config.yaml`. Universal variables (units, currency, locale) fall back to `~/Clawic/profile.yaml` when not set here, then to the table default. ``` ```markdown - **units / locale** — temperature scale (°C vs °F) and home currency for € conversions — affects how temperatures and prices are quoted; falls back to `~/Clawic/profile.yaml`, then °C and € shown as-is ``` ```markdown ## Security & Privacy **Data that stays local:** Trip preferences in ~/Clawic/data/spain/ **This skill does NOT:** Access files outside ~/Clawic/data/spain/ or make network requests. ``` ### Technical Analysis The skill explicitly claims that it does not access files outside `~/Clawic/data/spain/`, but other instructions require or encourage three operations beyond that boundary: 1. Reading `~/Clawic/profile.yaml` to obtain units, currency, and locale. 2. Inspecting legacy locations at `~/spain/` and `~/clawic/spain/`. 3. Moving data from those legacy locations into the current skill directory. Reading the shared profile and accessing legacy directories therefore violate the documented least-privilege boundary. The migration instruction is particularly significant because moving a directory changes the user's filesystem state and can remove data from its original location. No explicit confirmation, backup, collision handling, p ...[truncated 1715 chars]
- Remediation
- ## Remediation Suggestions 1. Update the security statement to list every path the skill may access, including `~/Clawic/profile.yaml`, `~/spain/`, and `~/clawic/spain/`. 2. Request explicit user confirmation before inspecting or migrating either legacy directory. 3. Use a copy-and-verify migration rather than an immediate move: - Validate that the source is the expected directory and not an unsafe symbolic link. - Check whether the destination already exists. - Refuse silent overwrites or merges. - Copy the data and verify its integrity. - Preserve the source until the user confirms successful migration. - Provide a rollback procedure. 4. Read only the required profile keys—units, currency, and locale—instead of exposing the entire profile to the skill context. 5. If strict directory confinement is intended, remove the profile fallback and legacy migration instructions entirely. 6. Keep the documented privacy boundary synchronized with configuration metadata and actual runtime instructions.
