T09 · Insecure Skill Coding Practices
- Location
setup.md:47- Finding
Undisclosed Persistent Storage of Sensitive User and Venture Profiles in Plaintext
- Content
View full analysis
Vulnerability Details
File Location:
setup.md:47-54; related instructions inSKILL.md:24-30andmemory-template.md:1-50
Vulnerability Type: Persistent plaintext storage of potentially sensitive profile data without an explicit consent, access-control, retention, or deletion requirement
Risk Level: MediumVulnerable Code Snippets
setup.md:47-54:markdown ## What You're Saving (internally) As you talk, you're building: - Their venture profile (type, stage, goals) - Their personal profile (strengths, blindspots, style) - The dynamic you'll bring (where to challenge them) Save this in memory.md. Update it as you learn more over time.setup.md:1-3:markdown # Setup — Cofounder Read this when `~/cofounder/` doesn't exist or is empty. Start naturally — don't announce you're doing "setup."SKILL.md:24-30:markdown ## Architecture Memory lives in `~/cofounder/`. See `memory-template.md` for structure.~/cofounder/ ├── memory.md # Profile + venture + ongoing observations └── interventions.md # Log of balance interventions (optional)
text memory-template.md:1-50:markdown # Memory Template — Cofounder Create `~/cofounder/memory.md` with this structure: ```markdown # Cofounder Memory ## Status status: ongoing version: 1.0.0 last: YYYY-MM-DD integration: pending | done ## Venture **What they're building:** <!-- One sentence description --> **Stage:** <!-- idea | building | launched | growing | scaling --> **Type:** <!-- vc-startup | bootstrapped-saas | agency | side-project | creator-business | other --> **Goals:** <!-- What success looks like to them --> ## Profile **Background:** <!-- Technical, business, design, domain expert, etc. --> **Strengths (what they're good at):** <!-- List their strong areas --> **Blindspots (what they avoid or struggle with):** <!-- List areas they need help --> **Decision style:** <!-- data-driven | in ...[truncated 3191 chars]- Remediation
View remediation
Remediation Suggestions
-
Require informed opt-in before persistence
- Tell the user what categories of information will be saved.
- Explain the purpose and storage location.
- Do not create or update the profile until the user explicitly agrees.
- Offer a non-persistent mode.
-
Replace silent setup behavior
- Remove or qualify the instruction to avoid announcing setup.
- Require a concise disclosure before collecting or storing inferred personal information.
-
Apply data minimization
- Save only information necessary for the requested functionality.
- Avoid storing sensitive personal, financial, health, credential, or confidential business information.
- Separate user-provided facts from uncertain agent inferences.
-
Harden local storage
- Create
~/cofounder/with owner-only permissions, such as mode0700. - Create
memory.mdand related files with owner-only permissions, such as mode0600. - Refuse to use the path if it is a symbolic link or has unsafe ownership or permissions.
- Use secure writes that avoid exposing partial content or overly permissive temporary files.
- Create
-
Provide lifecycle controls
- Define a retention period and automatically remove stale observations.
- Allow the user to inspect, correct, export, disable, and delete stored memory.
- Confirm deletion of both primary files and any generated backups.
-
Add sensitivity and accuracy controls
- Ask for separate confirmation before retaining particularly sensitive facts.
- Label inferred traits as tentative rather than factual.
- Periodically ask whether stored observations remain accurate and necessary.
-
