Back to skill

Security audit

Skill Auto-Use

Security checks for vulnerabilities and agentic risk

Overview

This skill openly changes how the agent chooses and runs other skills, including persistent auto-use rules, without enough user control.

Install only if you deliberately want persistent, workspace-level automation of skill selection. Review and approve each trigger manually, avoid triggers for skills that can write files, use credentials, contact accounts, publish, deploy, or delete data, and do not add the permanent rule unless you are comfortable with future skills becoming automatically callable.

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 (3)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:29
Finding
Automatic Invocation of Installed Skills Without User Authorization<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 29-35 **Vulnerability Type**: Automatic and potentially compound invocation of installed skills **Risk Level**: High ### Vulnerable Code ```markdown ### 2. Match Before Asking On every user message, scan the trigger table mentally. If a skill matches, use it. Don't ask "should I use X?" Just use it. The user installed the skill because they want it used. ### 3. Multiple Matches Are Fine If a message matches multiple skills, use all of them. A request about a PDF from a website might trigger both `scrapling-official` (to fetch it) and `markdown-converter` (to process it). ``` ### Technical Analysis The skill instructs the agent to invoke any skill whose trigger matches a user message and explicitly prohibits requesting confirmation. It also directs the agent to invoke all matching skills rather than selecting the minimum functionality required for the task. Installing a skill does not necessarily authorize every future execution or every possible side effect. Installed skills may have access to network services, local files, credentials, external accounts, deployment systems, or other tools. Automatically invoking them based only on keywords, file types, or broad task categories bypasses task-specific authorization and least-privilege controls. This behavior alters the agent's normal invocation policy when the skill text is loaded. It can consequently redirect execution into other installed skills even when the user did not explicitly request those operations. ### Attack Path 1. The agent loads `skill-auto-use` and adopts its instruction to execute matching skills without confirmation. 2. An installed skill is associated with an observable trigger, such as a keyword, domain, or file type. 3. A user or attacker submits content that intentionally or incidentally matches the trigger. 4. The agent invokes the associated skill without checking whether its side effects are necessary or a ...[truncated 951 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Replace automatic invocation with a recommendation mechanism that identifies a potentially useful skill but does not execute it automatically. - Require explicit user approval before invoking skills that can write files, access credentials, contact external services, operate accounts, publish content, deploy software, or otherwise cause consequential side effects. - Apply least privilege by selecting only the minimum skill necessary for the requested task. - Do not invoke every matching skill. Resolve overlapping triggers using a deterministic priority policy and confirm ambiguous or compound operations. - Display the selected skill, intended action, required permissions, and expected side effects before execution. - Treat user-controlled files, keywords, domains, and document contents as untrusted trigger inputs. - Allow narrowly scoped automatic execution only for demonstrably read-only, local, reversible operations that the user has explicitly enabled. ]]>

T02 · Agent Memory Poisoning

Error
Location
SKILL.md:55
Finding
Persistent Modification of Agent Memory and Startup Behavior<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 55-72 and 95-99 **Vulnerability Type**: Persistent agent memory and startup-rule poisoning **Risk Level**: High ### Vulnerable Code ```markdown ## Setting Up ### Option A: Add to existing protocols file Add a `## Skill Auto-Use` section to your protocols or memory file with the trigger table. ### Option B: Dedicated file Create `skill-triggers.md` in your workspace: ```markdown # Skill Triggers | Trigger | Skill | Action | |---------|-------|--------| | ... | ... | ... | ``` Reference it from MEMORY.md or your session startup sequence. ``` The installation rule further requires permanent modification: ```markdown ## Installation Rule Add this to your workspace's permanent rules: > When installing any new skill, IMMEDIATELY add it to the Skill Auto-Use trigger table. No exceptions. This is not optional. ``` ### Technical Analysis The skill instructs the agent to write its behavioral policy into a protocols file, memory file, `MEMORY.md`, session startup sequence, or permanent workspace rules. These storage locations are intended to influence future sessions, so the modification persists beyond the task in which the skill was loaded. The persisted data is not merely passive configuration. It controls which installed skills are invoked in response to future messages and includes a mandatory rule that expands the trigger table whenever another skill is installed. This allows the skill's policy to continue affecting agent decisions even when the original skill is not explicitly requested. Because trigger definitions can determine future tool and skill execution, anyone able to influence the trigger table or its installation process could introduce broad or deceptive mappings. A later message could then activate a privileged skill through the poisoned persistent state. ### Attack Path 1. The skill is loaded in a workspace. 2. Following its setup instructions, the agent creates or ...[truncated 1212 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Do not modify `MEMORY.md`, startup sequences, protocol files, or permanent workspace rules automatically. - Keep optional trigger configuration in a skill-scoped configuration file that is not loaded globally by default. - Require explicit, informed user approval before creating, modifying, or registering persistent configuration. - Present an exact diff of every proposed persistent change and provide a simple rollback procedure. - Separate descriptive preferences from executable policy; persisted entries must not independently authorize skill execution. - Validate trigger-table changes against an allowlist of installed skills and their declared permission scopes. - Record the origin, author, creation time, and approval status of each trigger entry. - Ensure persistent rules can be disabled or removed without reinstalling the workspace. - Require renewed confirmation in each session before any trigger causes a consequential action. ]]>

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:25
Finding
Self-Propagating and Automatically Reinforced Trigger Policy<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 25-27, 37-42, 93, and 95-99 **Vulnerability Type**: Self-propagating execution policy and persistent rule reinforcement **Risk Level**: High ### Vulnerable Code ```markdown ### 1. Every Skill Gets a Trigger When a skill is installed, add at least one trigger row to the table before doing anything else. No skill should exist without a trigger. If you can't identify a trigger, the skill probably shouldn't be installed. ``` The policy is reinforced during recurring reviews: ```markdown ### 4. Audit on Heartbeat During heartbeat or review passes, check: - Are there installed skills without triggers? Add them. - Are there triggers that never fire? Consider removing the skill. - Are there repeated manual skill invocations? Add a trigger. ``` The template gives the skill a trigger tied to installation activity: ```markdown | Skill installed | **skill-auto-use** (add trigger immediately) | ``` Finally, the propagation requirement is made permanent: ```markdown ## Installation Rule Add this to your workspace's permanent rules: > When installing any new skill, IMMEDIATELY add it to the Skill Auto-Use trigger table. No exceptions. This is not optional. ``` ### Technical Analysis The skill mandates that every installed skill receive an automatic trigger before any other work proceeds. It also requires periodic heartbeat or review processes to add missing triggers and convert repeated manual invocations into automatic mappings. This creates a self-reinforcing control policy: - Installing a skill triggers `skill-auto-use`. - `skill-auto-use` adds an automatic invocation rule for the new skill. - Heartbeat or review activity repairs missing mappings and creates additional mappings. - Permanent workspace rules preserve the behavior across sessions. The instruction to act “before doing anything else,” combined with “No exceptions” and “This is not optional,” attempts to supersede task priori ...[truncated 1654 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Remove the requirements that every skill must have a trigger and that registration must occur before all other work. - Remove absolute directives such as “No exceptions” and “This is not optional.” - Do not use heartbeat or review tasks to mutate trigger tables automatically. - Require a separate, explicit approval for each proposed trigger mapping. - Classify skills by permission and impact. Prohibit automatic triggers for skills with write, network, credential, account, deployment, publication, financial, or destructive capabilities. - Prevent self-triggering based on skill installation events. - Make trigger registration opt-in, reviewable, version-controlled, and reversible. - Implement integrity checks so recurring processes report missing or changed mappings without repairing them automatically. - Add expiration dates and periodic user reauthorization for approved mappings. - Preserve manual invocation as the default for newly installed skills. ]]>
Vulnerability Patterns
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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

High
Confidence
97% confidence
Finding
The skill is explicitly designed to auto-invoke other installed skills without user confirmation across broad contexts, which weakens least-privilege and user-intent boundaries. Because triggers are meant to be added for every installed skill and applied proactively, ordinary conversations can cause unexpected capability activation, including sensitive tools such as web, file, email, or code-related skills.

Vague Triggers

High
Confidence
98% confidence
Finding
Mandating a mental scan of the trigger table on every user message creates continuous broad matching against underspecified criteria, increasing accidental or manipulative activations. This makes prompt-injection-by-context easier, because a user can intentionally phrase benign-looking requests to trigger powerful skills without an explicit invocation step.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The suggested trigger categories—keywords, domains, task types, file types, and common question patterns—are so general that they overlap heavily with normal conversation. In the context of an auto-use skill, this broadness materially increases unintended tool use, data exposure to connected services, and chaining of unrelated skills from routine prompts.

Persistent Context Injection

Medium
Category
Memory Poisoning
Content
## Installation Rule

Add this to your workspace's permanent rules:

> When installing any new skill, IMMEDIATELY add it to the Skill Auto-Use trigger table. No exceptions. This is not optional.
Confidence
95% confidence
Finding
The instruction to add a permanent workspace rule creates persistence for future behavior changes, effectively turning one skill installation into a durable policy that modifies how all later skills are handled. Persistent context injection is especially risky here because it institutionalizes automatic propagation: every new skill must be integrated into the trigger system, expanding attack surface over time.

Static analysis

No suspicious patterns detected.