T01 · Skill Instruction Hijacking
- Location
SKILL.md:15- Finding
Unscoped Instruction-Priority Override in Skill Prompt
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is mostly a coherent product-spec helper, but it gives itself broad instruction priority and can write archived project state and touch contract or invoice context without tight permission scoping.
Install only if you are comfortable with a product-spec skill that can create and update local products/ files and index metadata. Use it in a project-scoped workspace, review any generated build commands before running them, and do not allow contract or invoice lookups unless you explicitly want that business data used for the spec.
SKILL.md:15Unscoped Instruction-Priority Override in Skill Prompt
The declared description frames the skill as spec generation, but the body also archives files, updates trackers, runs scripts, and links into contract/invoice domains. This mismatch can mislead users and policy systems into granting or invoking the skill under a narrower trust model than its actual behavior, enabling unexpected data access and file mutation.
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
---
## Output Rules
- All specs in markdown
- Metadata in JSON
The example 'What am I building?' is common everyday language and is presented as a way to invoke or use the skill. Because the README does not clearly limit when this phrase should activate the skill or provide exclusion examples, it risks unintended invocation overlap with ordinary conversation.
The skill instructs the agent to read and write files (read_file(...), creating products/{product-slug}/...) but does not declare an explicit tool scope or permission boundary. This creates a least-privilege gap: an orchestrator or reviewer cannot easily tell that filesystem access is required, increasing the risk of unintended file access or writes during execution.
Several trigger phrases are broad everyday language, which makes unintentional mode switching more likely. Because different modes imply different levels of capability use, vague routing logic can cause the skill to perform file operations or analysis paths the user did not intend.
Defaulting ambiguous input to Full Spec mode can trigger expansive behavior—reading references, generating artifacts, and potentially writing archived outputs—without clear user intent. In agent systems, ambiguous activation increases the chance of accidental execution and over-collection or mutation of data.
The workflow extends beyond spec writing into persistent archiving, status tracking, and cross-skill data linkage. That scope expansion matters because it turns a content-generation skill into one that can modify project state and aggregate information from multiple domains, increasing attack surface and the chance of unintended side effects.
Reaching into contract and invoice context is not necessary for generating a product spec and violates data minimization. If invoked in environments containing sensitive business records, the skill could unnecessarily expose financial or contractual data to the agent context, broadening confidentiality risk.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
6. Output build commands
7. Score complexity
No confirmation step — generate and present immediately.
---
The instruction "Ship in one language" is a natural-language locale policy constraint that directs the skill to avoid multilingual support categorically. Because it does not offer user choice, opt-in, or a region-specific justification, it matches the language/locale policy violation criteria.
This code performs a file write to products_dir/INDEX.json, replacing prior contents. Although the module and CLI help mention rebuilding INDEX.json, there is no runtime confirmation, visible log before writing, or explicit warning that an existing index file will be overwritten.
No suspicious patterns detected.