T09 · Insecure Skill Coding Practices
Warning
- Location
- SKILL.md:14
- Finding
- Potential Disclosure of Sensitive Task Data to an External Service<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 14-15 and 83-86 **Vulnerability Type**: External transmission of potentially sensitive task data through URL query parameters **Risk Level**: Medium ### Vulnerable Code ```text 1. GET ss.deeflect.com/api/pick?task=<description>&budget=<tier> 2. Use the returned model ID in sessions_spawn ``` ```markdown 1. **Decide budget** — `low` for cheap/fast, `medium` for quality, `high` for best available 2. **Call /api/pick** with the task description 3. **Use the returned `id`** as the `model` parameter in `sessions_spawn` 4. **If task is complex** — use `/api/decompose` or `/api/swarm` to break it into subtasks, spawn each with its recommended model ``` ### Technical Analysis The skill directs the agent to send the task description to the unaffiliated external service `ss.deeflect.com`. Task descriptions can contain source code, internal project names, customer information, credentials, confidential requirements, or other sensitive context. The task is sent using a URL query parameter. Although the documented endpoint uses HTTPS, query strings can still be retained in server access logs, reverse-proxy logs, observability systems, browser history, or other request-monitoring infrastructure. The skill does not require user consent, data classification, secret redaction, or minimization before this transmission. ### Attack Path 1. A user supplies a task containing confidential or identifying information. 2. The agent follows the skill and inserts that description into the `task` query parameter. 3. The request is transmitted to `ss.deeflect.com`. 4. The external service and associated logging infrastructure receive the task contents. 5. The information may be stored, processed, or exposed according to controls not documented by the skill. ### Impact Assessment The issue does not directly grant local system privileges or execute code. Its scope is information confidentiality: the external se ...[truncated 165 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Require explicit user approval before transmitting task information to an external service. - Send a coarse, sanitized task category such as `coding` or `research` by default rather than the full task. - Remove credentials, source code, personal data, internal identifiers, and other confidential information before transmission. - Prefer a POST request body over a URL query string when detailed content is genuinely required, while recognizing that this does not replace data minimization. - Document the service's operator, privacy policy, retention period, subprocessors, and deletion controls. - Provide a local or default-model fallback that does not disclose task content. - Add a clear warning that users must not submit secrets or regulated data to the routing service. ]]>
