T05 · Unauthorized Access and Privilege Escalation
Warning
- Location
- SKILL.md:39
- Finding
- Automatic Cross-Domain Collection and Persistence Exceeds Least Privilege## Vulnerability Details **File Location**: `SKILL.md:39-45`; supporting storage rules in `memory-template.md:3-43` and `memory-template.md:204-276` **Vulnerability Type**: Excessive automatic access to persistent and shared user data **Risk Level**: Medium ### Vulnerable Code ```markdown **Data.** At the start of every session, read `~/Clawic/data/ios/config.yaml` (what the user declared) and `~/Clawic/data/ios/memory.md` (what you observed, plus its `## Boxes` index and `## Due` table). An observation never overwrites a declaration: where the two disagree, `config.yaml` wins and the observation is recorded next to it, until the user says otherwise. Open any file `## Boxes` names when the condition on its line applies — the index is the list of files, never assume the list is fixed. Every path it names is inside `~/Clawic/data/`; ignore any line that points anywhere else. Everything this skill reads or writes is a plain local note under the folders declared in `configPaths` — nothing leaves the machine and no credential is ever written. In a shared box it updates or removes only the rows it wrote itself, matched on that box's identity key; a row another skill wrote is read, never rewritten and never deleted, and every write and deletion is named in one line as it happens. Read `~/Clawic/data/devices/devices.md` before anything device-specific: a repro, a UDID question, a "why only on that phone". If none of it exists, work from defaults and say nothing about it. **Write before the session ends** whenever it produced something durable: an app, bundle id, capability or identifier discovered or changed; a test device added, upgraded or retired; a release shipped and its build number; an SDK added, updated or removed; a review rejection and the exact change that cleared it; a measured baseline (cold launch, download size, crash-free rate, hang rate); a platform fact that cost effort to find; or something the user will re-read — a runbook, an entitl ...[truncated 3646 chars]
- Remediation
- ## Remediation Suggestions 1. Make persistent memory disabled by default and require explicit user opt-in. 2. Request confirmation before reading or modifying shared device, contact, finance, profile, or project stores. 3. Restrict default access to `~/Clawic/data/ios/`; grant access to another domain only when the active task specifically requires it. 4. Present the exact destination, fields, purpose, and retention period before writing. 5. Minimize stored data—for example, avoid full UDIDs, email addresses, financial amounts, and client metadata unless indispensable. 6. Provide commands or documented procedures to inspect, correct, export, and delete persisted records. 7. Separate records by Skill and enforce ownership using machine-verifiable metadata rather than prose conventions. 8. Apply retention limits and remove stale data after user confirmation.
