T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:6- Finding
Excessive Command Execution and Browser Permissions for a UI Design Skill
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 6 and 18–22
Vulnerability Type: Excessive tool permissions and violation of least privilege
Risk Level: MediumVulnerable Code
yaml allowed-tools: read execyaml tools: - exec - read - browserTechnical Analysis
The skill is documented as a Markdown-driven frontend design assistant that generates HTML and CSS based on typography, color, layout, and animation rules. This legitimate function does not require unrestricted system-command execution or general browser access.
The metadata nevertheless requests the
exectool and separately declares thebrowsertool. The document also makes broad claims later in the file about command execution, external API integration, and file processing, but it does not define enforceable restrictions such as:- An explicit command allowlist
- Fixed command arguments
- Restricted working directories
- Read-only file-system boundaries
- Approved network destinations
- Browser domain allowlists
- Runtime sandbox policies
Although the security guidance states that only allowlisted commands should be executed, this is an advisory statement rather than an implemented control. No actual allowlist or validation mechanism is provided.
This violates the principle of least privilege. An agent platform that grants tools according to the skill metadata could expose command execution and network-capable browser functionality to a skill whose stated task only requires text generation.
Attack Path
- An agent loads
SKILL.mdand grants the tools declared by its metadata. - The skill receives
exec, file-reading, and potentially browser capabilities. - An attacker supplies a crafted design request containing instructions that influence generated tool actions or command arguments.
- Because the skill defines no enforceable command, argument, path, or destination restrict ...[truncated 1131 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
execandbrowserfrom the skill metadata because HTML/CSS generation can be performed without those capabilities. - Retain only read-only access if the skill must inspect existing frontend files. Otherwise, declare no tools.
- Remove unsupported generic claims about command execution, arbitrary file processing, and external API integration.
- If command execution is genuinely required for a narrowly defined operation:
- Implement an enforceable allowlist of exact executables.
- Use fixed arguments rather than user-controlled command strings.
- Reject shell metacharacters and prohibit shell interpretation.
- Restrict execution to a dedicated sandbox with minimal privileges.
- Limit access to a designated project directory.
- Prevent access to credentials, environment secrets, and sensitive host paths.
- Require explicit user confirmation before each execution.
- If browser access is required, enforce an HTTPS-only domain allowlist and prohibit arbitrary navigation, downloads, and credential-bearing requests.
- Keep tool declarations consistent: the top-level
allowed-toolsfield and the separatetoolslist currently disagree about browser access. - Add automated policy tests that fail publication when a skill requests capabilities not directly required by its documented purpose.
- Remove
