T09 · Insecure Skill Coding Practices
- Location
user_memory.md:5- Finding
Plaintext Persistence of Sensitive Personal and Health-Related Data
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:17-28profile.md:7-16coach.md:31-36user_memory.md:5-25
Vulnerability Type: Plaintext storage of sensitive personal, location, and health-related data
Risk Level: MediumVulnerable Code Snippets
SKILL.md:17-28markdown ## Transparency & Privacy Your privacy and control over your data are important. - **Where data is stored**: Your fitness profile and progress are stored locally in the `user_memory.md` file within this skill's directory. - **Your Control**: You can ask me at any time to show you what's stored in your profile, update it, or delete it entirely. - **No Hidden Storage**: I will be transparent about the data I gather and how it's used to improve your coaching experience. ## Instructions - **TRANSPARENCY**: Be open with the user about where their data is stored (`user_memory.md`, `coach.md`). If they ask how you remember their progress, explain that you maintain a local profile file for them. - **CONSENT**: Before saving sensitive personal data (weight, height, location), ensure the user is aware and comfortable with it being stored locally for personalization. - **DATA CONTROL**: If the user requests to see, modify, or delete their profile, prioritize this request and perform the necessary file operations promptly.profile.md:7-16markdown 1. **Check Existing Data**: Always check user_memory.md first to see if we already have the user's information. 2. **Ask Missing Info**: If information is missing, ask the user naturally. - Name - Age / Gender - Weight (kg) & Height (cm) - Location in Dubai (e.g., Marina, Downtown, JVC) — this helps with recommending gyms or outdoor tracks. - Fitness Goals (Weight loss, muscle gain, marathon training, etc.) - Activity Level (Sedentary, Active, Athlete) - Dietary Preferences (Vegan, Keto, No restrictions, etc.) 3. **S ...[truncated 3877 chars]- Remediation
View remediation
Remediation Suggestions
- Store mutable user records outside the distributed skill directory in a dedicated application-data location protected by restrictive operating-system permissions.
- Encrypt sensitive profile and progress information at rest using a managed key that is not stored alongside the encrypted records.
- Isolate records by user identity and ensure that one user's session cannot read or modify another user's profile.
- Collect only fields necessary for a requested feature. For example, avoid storing a precise neighborhood unless the user explicitly requests location-based recommendations.
- Obtain explicit, field-specific consent before collecting location, physical measurements, demographic information, or health-related progress data.
- Define retention periods and automatically remove stale records. Implement secure deletion for profile-removal requests and include associated progress data in that process.
- Add
user_memory.md, generatedcoach.mddata, and other mutable records to version-control and packaging exclusion rules. Use immutable templates that contain no real user information. - Warn users that local storage may be accessible to other users or processes with filesystem permissions, rather than implying that local storage alone guarantees confidentiality.
- Validate file ownership and permissions before every read or write, and fail safely if the storage location is shared or broadly readable.
- Keep an auditable inventory of collected fields and provide a single operation that exports or deletes all data associated with a user.
