T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:142
- Finding
- Excessive Plaintext Persistence of Conversational and Personal Data<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:142-151`, `SKILL.md:181-190`, `assets/ONBOARDING.md:39-68`, and `references/onboarding-flow.md:60-76` **Vulnerability Type**: Persistent plaintext storage of potentially sensitive user data **Risk Level**: Medium ### Vulnerable Code `SKILL.md:142-151`: ```markdown ### Trigger — SCAN EVERY MESSAGE FOR: - ✏️ **Corrections** — "It's X, not Y" / "Actually..." / "No, I meant..." - 📍 **Proper nouns** — Names, places, companies, products - 🎨 **Preferences** — Colors, styles, approaches, "I like/don't like" - 📋 **Decisions** — "Let's do X" / "Go with Y" / "Use Z" - 📝 **Draft changes** — Edits to something we're working on - 🔢 **Specific values** — Numbers, dates, IDs, URLs ``` `SKILL.md:181-190`: ```markdown ## Working Buffer Protocol ⭐ NEW **Purpose:** Capture EVERY exchange in the danger zone between memory flush and compaction. ### How It Works 1. **At 60% context** (check via `session_status`): CLEAR the old buffer, start fresh 2. **Every message after 60%**: Append both human's message AND your response summary 3. **After compaction**: Read the buffer FIRST, extract important context 4. **Leave buffer as-is** until next 60% threshold ``` `assets/ONBOARDING.md:39-68`: ```markdown ### 1. Identity **What should I call you?** > **What's your timezone?** > ### 2. Communication **How do you prefer I communicate? (direct/detailed/brief/casual)** > **Any pet peeves I should avoid?** > ### 3. Goals **What's your primary goal right now? (1-3 sentences)** > **What does "winning" look like for you in 1 year?** > **What does ideal life look/feel like when you've succeeded?** > ### 4. Work Style **When are you most productive? (morning/afternoon/evening)** > **Do you prefer async communication or real-time?** > ### 5. Context **What are you currently working on? (projects, job, etc.)** > **Who are the key people in your work/life I should know about?** ``` ### Technical Analysis ...[truncated 2649 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Make persistent conversational memory explicitly opt-in and explain what data will be stored. 2. Replace automatic capture of all specific values with a narrow allowlist limited to information required for the current task. 3. Never persist passwords, API keys, session cookies, authentication tokens, recovery codes, financial information, health information, government identifiers, or private cryptographic material. 4. Avoid retaining third-party personal data unless the user explicitly requests it and has a legitimate need. 5. Store concise task-state summaries rather than complete user messages or full exchanges. 6. Add secret and personal-data detection before every memory write, with redaction or write refusal when sensitive content is detected. 7. Define retention periods and automatically delete stale working buffers after successful state extraction. 8. Provide commands to inspect, correct, export, and permanently delete all stored memory. 9. Apply restrictive filesystem permissions to memory and profile files. 10. Encrypt sensitive state at rest where persistent storage is necessary. 11. Prevent memory files from being committed to version control or included in broad telemetry and backup systems by default. 12. Document all files into which onboarding and conversation data may be copied. ]]>
