T09 · Insecure Skill Coding Practices
- Location
SKILL.md:35- Finding
Automatic Persistent Collection of Infrastructure and Contact Metadata Without Explicit Consent
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:35-39;memory-template.md:5-7, 23-35
Vulnerability Type: Automatic persistent storage of sensitive operational metadata
Risk Level: MediumVulnerable Code Snippets
SKILL.md:35-39:markdown **Data.** At the start of every session, read `~/Clawic/data/linux/config.yaml` (what the user declared) and `~/Clawic/data/linux/memory.md` (what you observed, plus its `## Boxes` index and `## Due` table). 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/servers/servers.md` before any "which hosts do I have" question, and a host's `baselines/<host>.md` before calling any number on it high or low. If none of it exists, work from defaults and say nothing about it. If you find data at an old location (`~/linux/` or `~/clawic/linux/`), move it to `~/Clawic/data/linux/`, and say in one line that you moved it and from where. **Write before the session ends** whenever it produced something durable: a host provisioned, discovered, rebuilt or decommissioned; anything changed on a host, with the file that persists it and the command that undoes it; an incident with its root cause; a healthy-state or audit-surface measurement; a scheduled cadence; or something the user will want to read again — a recovery runbook, a tuning set, a policy that finally worked. `memory-template.md` has every destination ...[truncated 5827 chars]- Remediation
View remediation
Remediation Suggestions
- Make persistent memory opt-in. Obtain explicit user consent before creating or updating any file under
~/Clawic/data/. - Separate consent for Skill-local records from consent for shared inventories such as
servers.md,contacts.md, and project files. - Replace
No permission neededwith a policy requiring confirmation before the first write, deletion, migration, or cross-Skill update. - Default to session-only processing for routine troubleshooting. Persist information only when the user requests documentation or enables memory.
- Apply data minimization. Do not store costs, personal contacts, access-reference paths, network exposure, or detailed incident information unless directly necessary and approved.
- Enforce restrictive permissions when creating storage directories and files, such as user-only directory and file access.
- Provide configurable retention limits and commands to inspect, export, redact, and delete stored records.
- Announce the exact fields and destination before writing, rather than only reporting the write after it occurs.
- Avoid automatic migration from legacy directories until the user confirms the source, destination, and intended deletion behavior.
- Preserve the existing prohibition on storing private keys, passwords, hashes, tokens, passphrases, and secret-bearing configuration values.
- Make persistent memory opt-in. Obtain explicit user consent before creating or updating any file under
