Back to skill

Security audit

Fit Dubai

Security checks for vulnerabilities and agentic risk

Overview

FitDubai is a coherent fitness-coaching skill that openly stores profile and progress details locally, but users should understand that this may include sensitive health and location information in plaintext files.

Install only if you are comfortable with fitness, body-measurement, diet, and Dubai-area details being saved in local Markdown files. Ask the agent to show, update, or delete the stored profile when needed, and avoid entering details you would not want readable by someone with access to the skill directory.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
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-28
  • profile.md:7-16
  • coach.md:31-36
  • user_memory.md:5-25

Vulnerability Type: Plaintext storage of sensitive personal, location, and health-related data
Risk Level: Medium

Vulnerable Code Snippets

SKILL.md:17-28

markdown
## 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-16

markdown
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

  1. Store mutable user records outside the distributed skill directory in a dedicated application-data location protected by restrictive operating-system permissions.
  2. Encrypt sensitive profile and progress information at rest using a managed key that is not stored alongside the encrypted records.
  3. Isolate records by user identity and ensure that one user's session cannot read or modify another user's profile.
  4. Collect only fields necessary for a requested feature. For example, avoid storing a precise neighborhood unless the user explicitly requests location-based recommendations.
  5. Obtain explicit, field-specific consent before collecting location, physical measurements, demographic information, or health-related progress data.
  6. Define retention periods and automatically remove stale records. Implement secure deletion for profile-removal requests and include associated progress data in that process.
  7. Add user_memory.md, generated coach.md data, and other mutable records to version-control and packaging exclusion rules. Use immutable templates that contain no real user information.
  8. 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.
  9. Validate file ownership and permissions before every read or write, and fail safely if the storage location is shared or broadly readable.
  10. Keep an auditable inventory of collected fields and provide a single operation that exports or deletes all data associated with a user.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill states it will track personal milestones and performance history in the file, but it does not clearly warn users about retention, visibility, scope of storage, or privacy implications before collection. Because fitness history can include sensitive health-related personal data, users may disclose more than intended without informed consent, creating avoidable privacy risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This file is explicitly designed to store sensitive personal data, including health-related information and precise location within Dubai, but it provides no privacy notice, retention policy, or user consent language. In a conversational agent context, collecting and persisting this data without clear warning increases the risk of over-collection, unexpected retention, and privacy harm if the memory is exposed, reused, or accessed by unauthorized parties.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.