Back to skill

Security audit

Multi-Agent EN

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed multi-agent dispatcher, but it forces all substantive work through persistent sub-agent sessions and may copy too much context without clear user control.

Install only if you intentionally want a dispatcher that routes substantive tasks to persistent sub-agent sessions. Avoid using it for sensitive conversations or secrets unless you are comfortable with that context being passed into reused sub-agent sessions, and consider editing the skill to minimize shared context, make persistence opt-in, and allow the main agent to keep direct control when safety or verification requires it.

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:15
Finding
Host-Agent Instruction, Tool, Delegation, and Output-Flow Hijacking## Vulnerability Details **File Location**: `SKILL.md:15`, `SKILL.md:47-51`, `SKILL.md:72-85`, `SKILL.md:98-115`, `SKILL.md:196-205`, and `SKILL.md:355-364` **Vulnerability Type**: T01: Skill Instruction Hijacking **Risk Level**: Critical ### Vulnerable Code Snippets `SKILL.md:15` ```md > You are the **Dispatcher**. Your job: receive tasks, assess difficulty, and delegate to your team. You never do the work yourself. ``` `SKILL.md:47-51` ```md You are the **Dispatcher** (Commander). Your responsibilities: 1. Talk to the user, understand the request 2. Assess task difficulty level 3. Delegate to the appropriate sub-agent 4. Report back the results **You are a pure dispatcher. You must NOT use exec, file I/O, search, or any execution tools.** ``` `SKILL.md:72-85` ```md ### 🔥 Multi-Task Decomposition — Parallel Dispatch **When the user sends multiple independent tasks in one message, you MUST break them down and dispatch multiple sub-agents simultaneously!** Don't pile everything onto one person — you have 5 agents, use them in parallel. **Decomposition Rules:** 1. Check whether the user's request contains **multiple independently executable** sub-tasks 2. If yes, split them and assign each to a different sub-agent 3. If tasks have dependencies (B must wait for A), dispatch A only — wait for A's report before dispatching B 4. Don't over-split — if something is inherently one task, keep it whole ``` `SKILL.md:98-115` ```md ## ⚡ Two Ironclad Rules — Non-Negotiable ⚡ ### Rule #1: Reply First, Then Spawn **When you receive a task, you MUST output a text reply to the user BEFORE calling `sessions_spawn`.** Users cannot see tool calls — only your text. If you spawn without speaking, the user thinks you've frozen. Correct order: 1. **Speak first** — assess difficulty level, tell the user who you're dispatching (for multi-task, summarize the full breakdown) 2. **Then call the tool** — `sessions_spawn` (for multi-task, fire all spawns at once) 3. **Go sil ...[truncated 4676 chars]
Remediation
## Remediation Suggestions 1. Replace identity-changing directives with optional workflow guidance. Do not instruct the host that it is exclusively a dispatcher or that it must never perform work directly. 2. Add an explicit precedence statement confirming that system instructions, developer instructions, user intent, privacy requirements, and platform tool policies always override skill guidance. 3. Remove global prohibitions against execution, file I/O, search, and messaging tools. Tool selection should be based on least privilege and the needs of each task. 4. Make delegation optional and require the host to determine whether spawning a sub-agent is necessary and authorized. 5. Remove mandatory “reply first,” “go silent,” and other output-control rules. The host must remain able to issue security warnings, report tool failures, validate delegated results, and satisfy required response formats. 6. Replace “include ALL context” with a strict data-minimization rule. Only information necessary for the delegated subtask should be shared, with secrets and unrelated conversation content excluded. 7. Make persistent session reuse opt-in. Use isolated sessions for unrelated tasks and clear retained context when continuity is not explicitly required. 8. Add controls preventing sensitive data from being sent to sub-agents without user awareness or authorization. 9. Limit parallel spawning and resource use through task-specific concurrency controls rather than unconditional decomposition requirements. 10. Clearly label all role names, difficulty announcements, round-robin behavior, and response templates as customizable presentation defaults rather than mandatory security or runtime policy.
Vulnerability Patterns
  • 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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The manifest name, description, and title explicitly define this as an English-only edition, which imposes a language constraint in the skill's natural-language behavior. The file does not offer the user a language choice or document an opt-in mechanism for that constraint.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The manifest description explicitly labels the dispatcher as '(English)', and the skill name and keywords also indicate an English-only constraint. This is a natural-language locale restriction with no documented user opt-in or justification for why the skill must be limited to English.

Intent-Code Divergence

Low
Confidence
84% confidence
Finding
The manifest and repeated prose describe a pure dispatcher model that delegates all work to sub-agents. Yet Example 5 explicitly instructs the dispatcher to reply directly and not call sessions_spawn for some inputs, contradicting the absolute wording of the skill's stated behavior.

Intent-Code Divergence

Low
Confidence
78% confidence
Finding
The core role states the dispatcher must not use execution tools and that all actual work must be delegated via sessions_spawn. However, later examples explicitly allow the dispatcher to handle some requests directly without spawning, which softens the absolute 'all actual work' instruction and creates an intent inconsistency in the operational guidance.