T09 · Insecure Skill Coding Practices
- Location
SKILL.md:29- Finding
Plaintext Persistence of Sensitive Agency, Client, and Personnel Data
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:29-39onboarding.md:47-64team.md:3-20feedback.md:13-23feedback.md:27-44
Vulnerability Type: Sensitive information stored in unprotected plaintext files
Risk Level: MediumVulnerable Content
SKILL.md:29-39:markdown Agency data lives in ~/agency/:~/agency/ ├── clients/ # One file per client │ ├── index.md # Client list with status │ └── [name].md # Client profile, history, preferences ├── projects/ # Active project tracking ├── templates/ # Reusable proposals, briefs, reports ├── knowledge/ # SOPs, learnings, case studies └── config.md # Rates, margins, team structure
text onboarding.md:47-64:markdown ## Client Folder Setup Create `~/agency/clients/[client-slug].md`: ```markdown # [Client Name] ## Status: [prospect|active|past] ## Start date: [date] ## Primary contact: [name, email] ### Brand/Voice Notes <!-- Tone, terminology, preferences --> ### Projects <!-- List with dates and outcomes --> ### History Log <!-- Key interactions, decisions, issues -->text `team.md:3-20`: ```markdown ## Team Database Maintain in ~/agency/config.md: ```markdown ### Team Members #### [Name] - Role: [role] - Skills: [skill1, skill2] - Availability: [hours/week] - Rate: [internal cost/hour] - Current projects: [list] - Notes: [preferences, timezone, communication style] ### Freelancers #### [Name] - Specialty: [what they're best at] - Rate: [hourly/project]text `feedback.md:13-23`: ```markdown `~/agency/knowledge/`:knowledge/ ├── sops/ # Standard Operating Procedures │ ├── onboarding.md │ ├── proposal.md │ └── delivery.md ├── cases/ # Completed project summaries │ └── [project-name].md ├── learnings.md
...[truncated 3422 chars]- Remediation
View remediation
Remediation Suggestions
-
Create the workspace with restrictive permissions:
- Set
~/agency/and its subdirectories to mode0700. - Set files containing client, financial, or personnel records to mode
0600. - Verify permissions after creating or modifying files.
- Set
-
Add explicit instructions prohibiting storage of passwords, API keys, access tokens, private keys, session cookies, and other authentication material in Markdown records. Use an operating-system keychain or dedicated secret manager instead.
-
Encrypt sensitive records or require full-disk or home-directory encryption. Document that the workspace should not be placed in an unapproved cloud-synchronized directory.
-
Minimize collected information:
- Store only contact and operational details required for active work.
- Avoid unnecessary personal observations in personnel notes.
- Redact or pseudonymize completed-project records where possible.
-
Establish retention and deletion controls:
- Define retention periods for prospect, past-client, project, and personnel records.
- Archive only information with a documented business requirement.
- Securely delete expired sensitive records and associated backups where feasible.
-
Separate data by sensitivity. Store financial data, personnel assessments, and client contact records in distinct protected locations rather than a single broadly accessible workspace.
-
Require user confirmation before persisting unusually sensitive client information and provide a warning when the target path appears to be shared, synchronized, or insufficiently protected.
-
