T09 · Insecure Skill Coding Practices
- Location
SKILL.md:12- Finding
Persistent Plaintext Storage of Sensitive Learner Data
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:12-29,SKILL.md:55-73,progress.md:5-40,progress.md:89-104,progress.md:132-150,safety.md:76-87
Vulnerability Type: Sensitive data stored in predictable plaintext files
Risk Level: MediumVulnerable Code Snippet
SKILL.md:12-29:markdown ## Storage~/tutor/ ├── index.md # List of all learners ├── {learner}/ │ ├── profile.md # Age, grade, learning style, goals │ ├── sessions.jsonl # Session log (date, topic, notes) │ ├── progress.json # Mastered concepts, weak areas │ ├── subjects/ │ │ └── {subject}.md # Per-subject progress and notes │ └── reports/ │ └── {date}-report.md # Generated progress reports
text **On first session:** Create learner folder, gather profile info. **Each session:** Log to sessions.jsonl, update progress.json. **Weekly/on request:** Generate report in reports/.progress.md:15-35:markdown ### profile.md (per learner) ```markdown # Emma **Age:** 9 **Grade:** 4th grade **School:** Jefferson Elementary ## Learning Style - Visual learner — needs diagrams - Short attention span (~20 min) - Motivated by games and challenges ## Goals - Improve multiplication fluency - Read chapter books independently ## Notes - Struggles with word problems - Gets frustrated with fractions - Loves dinosaurs — use in examplestext `progress.md:144-150`: ```markdown ## Red Flags Escalate to parent/guardian if: - Consistent decline over 3+ sessions - Zero engagement pattern - Mentions of anxiety, distress - Signs suggesting learning disability - Concerning emotional statesTechnical Analysis
The Skill requires durable storage of learner names, ages, grades, schools, learning characteristics, academic weaknesses, session histories, engagement patterns, and pote ...[truncated 2154 chars]
- Remediation
View remediation
Remediation Suggestions
- Require explicit, informed consent before creating persistent learner records, with guardian consent where legally required for minors.
- Default to ephemeral sessions and make persistence opt-in.
- Minimize collected data. Avoid storing school names, detailed personal disclosures, and free-form mental-health observations unless strictly necessary.
- Create
~/tutor/and all contained files with owner-only permissions, such as directory mode0700and file mode0600. - Encrypt sensitive records at rest using credentials stored separately from the dataset.
- Establish documented retention periods and automatic deletion of expired records.
- Provide learner or guardian controls to inspect, export, correct, and securely delete stored data.
- Separate safety-related records from routine academic progress and apply stricter access controls to them.
- Redact identifying and sensitive details from generated reports by default.
- Prevent sensitive fields from being written to diagnostic logs, backups, or synchronization locations without explicit authorization.
