T09 · Insecure Skill Coding Practices
- Location
references/agent-guardrails.md:11- Finding
High-risk MCP operations lack enforced authorization and confirmation
- Content
View full analysis
Vulnerability Details
File Location:
references/agent-guardrails.md:11-25, 38-44; corroborated bySKILL.md:144-147andreferences/setup-guide.md:91-96
Vulnerability Type: Missing authorization enforcement for destructive operations
Risk Level: HighEvidence
markdown ## Authorization is not this tool's job — decide it where it belongs Whether a write should happen is your decision, or the environment's. The tool does not gate it — there is no read-only switch and no approval prompt to configure.markdown | "Confirm before anything disruptive" | Every traffic-affecting operation (`model_undeploy`, `deployment_redeploy`, `scale_to_zero`, `scale_replicas_down`, `drain_replica`, `replica_restart`, `lora_unload`, `model_sleep`) takes `dry_run=True` for a preview and is `risk=high`. ⚠️ **The double confirmation is a CLI feature, and only `scale_to_zero` has a CLI command** — every other one is reachable only over MCP, where nothing prompts. Keep your own confirmation for those. |The project further states in
SKILL.md:144-147that there is “no read-only switch, policy file, or approval gate,” and inreferences/setup-guide.md:91-96that an approver is not required.Technical Analysis
The Skill exposes traffic-affecting MCP operations that can scale deployments down, undeploy models, restart or drain replicas, unload adapters, and suspend models. Although these operations are labeled high risk and accept a dry-run option, the MCP execution path does not require a dry run, explicit operator approval, an approval token, or interactive confirmation.
The documented CLI double-confirmation does not protect most of these operations because only
scale_to_zerohas a corresponding CLI command. The remaining high-risk operations are reachable through MCP, where confirmation is delegated entirely to agent behavior. Audit logging, risk labels, and undo descriptors are detective or recovery controls; they do not authorize or pr ...[truncated 2281 chars]- Remediation
View remediation
Remediation Suggestions
- Default every MCP session to read-only and require an explicit policy grant before exposing write tools.
- Require a short-lived approval token for each high-risk operation. Bind the token cryptographically or server-side to:
- The target environment.
- The exact tool name.
- All material parameters.
- The approving operator.
- An expiration time.
- Enforce a mandatory dry-run for high-risk operations and reject execution unless the exact preview was subsequently approved.
- Add an MCP-layer confirmation state machine rather than relying on prompt instructions or agent compliance.
- Support policy controls that can independently disable undeploy, scale-down, drain, restart, unload, and sleep operations.
- Apply least-privilege credentials and network segmentation so observation sessions cannot reach control-plane write endpoints.
- Preserve auditing and undo records as secondary controls, but do not treat either mechanism as authorization.
- For operations without reliable undo, require stronger confirmation and clearly display the expected service impact before accepting approval.
