T09 · Insecure Skill Coding Practices
- Location
SKILL.md:45- Finding
Persistent plaintext storage of highly sensitive psychological records without explicit storage consent
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:45-57,SKILL.md:110-128,SKILL.md:159-170;docs/design.md:100-104;references/templates.md:20-622
Vulnerability Type: Sensitive data stored in plaintext with insufficient consent and access-control requirements
Risk Level: HighVulnerable Code
The following is an English rendering of the operative instructions in
SKILL.md:45-57:markdown Use Bash to check whether ~/.counselor/core/PROFILE.md exists. If it does not exist: 1. Read references/templates.md from the skill directory. 2. Create the complete ~/.counselor/ directory structure and all files from the templates. If it exists: 1. Read ~/.counselor/core/PROFILE.md. 2. Read ~/.counselor/core/STATE.md. 3. Read ~/.counselor/core/SAFETY.md. 4. If SAFETY.md contains a high-risk marker, prioritize the safety issue.The following is an English rendering of the session archival instructions in
SKILL.md:110-128:markdown Create ~/.counselor/sessions/YYYY-MM-DD.md, adding a sequence number if multiple sessions occur on the same day. Include: - Session topic - Key findings - Client emotional change - Counselor observations - Direction for the next session Update the core files: - Overwrite core/STATE.md. - Incrementally update relevant maps/*.md files. - Update core/SAFETY.md immediately when risk changes. - Incrementally update core/PROFILE.md when important information is found.The design document further states at
docs/design.md:100-104:markdown After 4 natural conversations, the system accumulates: a holistic profile, a three-generation family panorama, core belief tracking with cognitive trap identification, and a life story timeline with turning points. The client barely notices they are "being documented" — profiling merges seamlessly with the counseling process.Technical Analysis
The skill creates a persistent ps ...[truncated 2692 chars]
- Remediation
View remediation
Remediation Suggestions
- Require explicit, informed opt-in consent before creating
~/.counselor/or writing any session information. - Explain which categories of information will be stored, where they will be stored, how long they will be retained, and how they can be deleted.
- Offer a session-only mode that performs no persistent writes.
- Ask separately before retaining crisis information, family histories, or other particularly sensitive disclosures.
- Create the directory with permissions equivalent to
0700and record files with permissions equivalent to0600. - Support encryption at rest using an operating-system credential store or a user-controlled encryption key.
- Minimize records to information necessary for continuity; avoid storing verbatim sensitive disclosures by default.
- Define automatic retention and deletion policies rather than retaining records indefinitely.
- Warn users not to place the directory in source-control repositories, shared folders, or unencrypted cloud backups.
- Provide commands or documented controls to inspect, export, redact, and securely delete all retained data.
- Replace the goal of unobtrusive profiling with transparent, recurring notice whenever persistent records are updated.
- Require explicit, informed opt-in consent before creating
