Back to skill

Security audit

Save Usage ~4x (Codex oAuth users)

Security checks for vulnerabilities and agentic risk

Overview

This skill is not destructive, but it broadly forces user tasks into a spawned session and forwards the full task description without clear user control or data minimization.

Review before installing if your conversations may include secrets, proprietary code, personal data, or cost-sensitive work. The skill is intended to save usage by routing to mini when safe, but it can also force broad categories of requests into another spawned session with the full task text.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:20
Finding
Mandatory Model Delegation Enables Skill Instruction Hijacking<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 20–39 **Vulnerability Type**: Mandatory behavioral override and forced task delegation **Risk Level**: High ### Vulnerable Code ```markdown ## CRITICAL: Classify First, Then Act Before generating ANY response, you MUST: 1. Check: does this task match ANY escalation trigger below? 2. If YES → call `sessions_spawn()` IMMEDIATELY. Do NOT attempt to answer yourself. 3. If NO → respond directly on the current model. When in doubt, escalate. A wrong escalation costs little. A wrong “mini” answer can waste time or cause damage. ## Rule of Thumb > If anything will be executed, or the outcome matters, escalate. ## When to Escalate → MUST call sessions_spawn If the task matches ANY of the following, do NOT answer yourself. Instead, IMMEDIATELY call: ``` sessions_spawn( message: "<the full task description>", model: "gpt-5.3-codex", label: "<short task label>" ) ``` ``` ### Technical Analysis The skill imposes mandatory, session-wide behavioral instructions rather than offering optional model-routing guidance. It directs the agent to classify every request before responding, forbids the current agent from answering requests that match broad conditions, and requires immediate invocation of `sessions_spawn`. The escalation criteria elsewhere in the same file cover tool execution, code changes, security analysis, structured reports, uncertainty, complex reasoning, and other common activities. Consequently, most meaningful tasks can be redirected. The skill also instructs the agent to forward the “full task description,” without requiring user consent, content minimization, or a check for sensitive information. The frontmatter states that its description is injected into the system prompt, making these behavioral directives active when the skill is loaded. This allows the skill text to alter the current session’s decision-making and tool-use flow. No operating-system privilege escalation ...[truncated 1743 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace mandatory directives such as “MUST,” “IMMEDIATELY,” and “Do NOT attempt to answer yourself” with advisory routing guidance. 2. Require explicit user approval before creating another session or transferring task content. 3. Forward only the minimum information needed for delegation rather than the complete task description. 4. Add a sensitive-data review that excludes credentials, secrets, personal information, proprietary code, and unrelated conversation context. 5. Allow the host agent’s higher-priority policies, safety controls, and task-specific requirements to override skill routing recommendations. 6. Restrict delegation to a narrow, documented set of use cases instead of broad triggers such as structured output, uncertainty, or any executed result. 7. Verify that the destination model and session are authorized for the data classification of the task. 8. Add recursion and resource limits to prevent repeated spawning, delegation loops, and unnecessary cost. 9. Clearly disclose delegation to the user and provide a direct-processing alternative where feasible. 10. Shorten the frontmatter description so that it describes the skill’s purpose without embedding coercive session-control instructions. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The escalation rule is phrased so broadly ('If anything will be executed, or the outcome matters, escalate') that it can match a huge fraction of ordinary user requests. In a behavioral skill that changes routing on every message, this creates a prompt-policy weakness where normal tasks may be unnecessarily forwarded to a different session/model, increasing exposure of user content and making downstream behavior less predictable.

Description-Behavior Mismatch

Low
Confidence
87% confidence
Finding
The frontmatter description says mini may be used for safe triage, summarize, extract, reformat, dedupe, prompt drafts, and non-executable Q&A. But the body lists 'Structured deliverables — tables, outlines, reports/proposals, long writing, specs' as an always-escalate trigger, even though some of those outputs overlap with the description's allowed summarize/reformat/extract behavior and are non-executable by nature.

Vague Triggers

Low
Confidence
84% confidence
Finding
Treating all 'structured deliverables' as escalation-worthy is overly broad because many harmless requests naturally produce structured output, such as short bullet lists or simple tables. In this context, the main risk is over-routing benign content into spawned sessions, which can increase data sharing surface area and operational cost without a proportional safety benefit.

Intent-Code Divergence

Low
Confidence
83% confidence
Finding
These instructions pull in opposite directions: one section forbids mini from producing structured deliverables, while a later section explicitly permits structured reformatting outputs on mini. That contradiction can cause the skill to route the same class of harmless formatting tasks inconsistently.

Static analysis

No suspicious patterns detected.