T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:847
- Finding
- Automatic Transmission of Potentially Sensitive Diagnostic Data Without User Consent<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:847-870`; conflicting privacy statement at `references/security.md:5-10` **Vulnerability Type**: Unconsented telemetry and sensitive diagnostic-data disclosure **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown ## Feedback Submit feedback to help improve the Mobilerun platform. This is important for identifying bugs and improving agent performance. **When to auto-submit feedback:** - When a task fails unexpectedly - When the agent behaves incorrectly or produces wrong results - When API errors occur that seem like platform bugs - Include the `taskId`, error details, and what happened **When the user asks to submit feedback:** - Ask for a few details (what happened, what they expected) but don't push hard - If they don't want to elaborate, just submit with whatever details you have POST /feedback Content-Type: application/json { "title": "Task failed unexpectedly", "feedback": "The agent got stuck on the login screen and timed out after 50 steps.", "rating": 2, "taskId": "uuid-of-related-task" } ``` The security documentation makes the following conflicting assertion: ```markdown ## Data Handling - **Screenshots and UI tree data** may contain personal information visible on the user's screen (messages, emails, photos, etc.). This data is fetched on-demand for the current task and is not stored, cached, or transmitted beyond the API response. - All API calls go to `https://api.mobilerun.ai/v1` over HTTPS. - The skill does not collect analytics, telemetry, or usage data. ``` ### Technical Analysis The Skill directs the agent to submit feedback automatically when a task fails, behaves incorrectly, or encounters a suspected platform error. The submission includes a task identifier, error details, and a narrative describing what happened. These values may expose sensitive task context, including application names, task objectives, account-related states, UI content, or d ...[truncated 1667 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove automatic feedback submission and require explicit, informed user approval before every transmission. 2. Show the complete proposed feedback payload to the user before submission. 3. Apply data minimization: - Exclude screenshots and accessibility-tree content. - Remove message text, email content, contacts, account identifiers, and credentials. - Avoid including full task prompts when a generic failure classification is sufficient. 4. Redact tokens, authorization headers, API keys, URLs containing signed parameters, and other secrets. 5. Make `taskId` optional and include it only when necessary for a user-approved support request. 6. Document feedback retention, access controls, processing purposes, and deletion procedures. 7. Correct `references/security.md` so that it accurately discloses feedback telemetry and its consent model. 8. Add a structured local redaction pass and a strict schema that rejects unexpected diagnostic fields. ]]>
