T09 · Insecure Skill Coding Practices
Error
- Location
- SKILL.md:665
- Finding
- Cloud Write Operations Are Submitted Without Explicit User Confirmation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:665-671` **Vulnerability Type**: Missing authorization checkpoint for cloud mutations **Risk Level**: High ### Complete Code Snippet ```markdown **Silent submit by default.** Creation commands (`create-task`/`restart-task`/ `register-checkpoint`/`save-draft`) submit without prompting. The agent **MUST NOT** print raw JSON or code. With `--verbose/-v`, present a user-friendly grouped summary (tables/lists), then submit directly — no yes/no. **Destructive ops** (`stop-task`/`delete-tasks`/`resume-task`): agent confirms `task_id` before acting. **`restart-task`**: if config edited, show diff briefly then submit; if no edits, submit silently. ``` ### Technical Analysis The Skill explicitly instructs the Agent to perform several authenticated cloud write operations without obtaining affirmative user approval immediately before execution. The affected operations include: - Creating training and SimRL tasks - Restarting or resubmitting tasks - Registering checkpoints - Saving drafts Creating or restarting a training task can allocate costly compute resources and transmit task configuration, model identifiers, dataset identifiers, environment values, and object-storage paths to CloudRobo services. Merely displaying a summary does not establish authorization when the instructions explicitly prohibit a final yes/no confirmation. The behavior also conflicts with `references/iam-policies.md:87`, which states that create, stop, restart, delete, save-draft, update, and resume operations require user confirmation. Confirmation is only consistently required for a subset of destructive operations in `SKILL.md`. This issue does not demonstrate malicious intent or privilege escalation. The commands use the user's existing credentials and declared CloudRobo functionality. The flaw is the lack of a reliable authorization boundary before consequential network mutations. ### Attack Path 1. A user makes an exp ...[truncated 1389 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Require explicit, affirmative confirmation immediately before every cloud mutation, including: - `create-task` - `restart-task` - `register-checkpoint` - `save-draft` - `update-task` - `stop-task` - `resume-task` - `delete-tasks` - `clone-task` 2. Before requesting confirmation, display a concise operation summary containing: - Operation type - Account, region, and workspace - Task name and mode - Model and dataset sources - Resource pool, accelerator specification, and worker count - Output model behavior - Whether the operation can start compute usage or incur cost 3. Require a response such as “Confirm” rather than treating silence, “OK” from an earlier workflow step, or a request to inspect configuration as execution approval. 4. Apply stronger confirmation to irreversible deletion and potentially expensive task creation. For deletion, require the exact task ID or task name to be repeated. 5. Reconcile `SKILL.md` with `references/iam-policies.md` so that all documentation enforces the same confirmation policy. 6. If non-interactive automation is required, introduce an explicit user-controlled flag such as `--approve-mutation`, disabled by default. ]]>
