T01 · Skill Instruction Hijacking
- Location
SKILL.md:3- Finding
Mandatory Skill Invocation Hijacks Agent Tool Selection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears intended to generate ProcessOn diagrams, but it overreaches by forcing broad diagram requests through an external service and by installing/running npm tooling and persisting tokens with limited safeguards.
Install only if you are comfortable sending diagram prompts and any included code or architecture details to ProcessOn, and review the setup script first. Avoid using it for sensitive internal systems unless endpoint settings and token storage are controlled. Prefer a pinned release, install mcporter deliberately yourself, and avoid automatic global npm installation.
SKILL.md:3Mandatory Skill Invocation Hijacks Agent Tool Selection
setup.mjs:76Automatic Download and Global Installation of an Unverified npm Dependency
setup.mjs:23Environment-Controlled MCP Endpoint Can Receive the Persisted Bearer Token
The skill uses extremely broad mandatory trigger language ('any structured diagram', plus common phrases like '画图' and '生成图表') and insists it must be called preferentially. This can hijack unrelated or only loosely related user requests, forcing the agent into shell/network/auth flows and external service usage without meaningful user intent or informed consent.
The invocation rules contain ambiguous catch-all requirements such as any request involving '画图', '可视化', or '生成图表' must use this skill and must not be bypassed. In context, this is dangerous because invocation leads into external auth, token handling, network checks, and MCP calls, so ambiguous routing can escalate ordinary conversation into unnecessary privileged operations.
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
Referenced artifact was not completely inspected
node ./setup.mjs processon_check_and_start_auth
checkMcporter() performs npm install -g mcporter@..., modifying the host system globally to satisfy the skill's dependency. Global installation is unnecessary for the stated purpose and gives the skill persistent host-modification capability, increasing supply-chain risk and violating least privilege.
The README states the skill uses browser-based authorization and MCP, and advertises using natural language and code context, but it does not clearly warn that user prompts, diagram content, and possibly contextual code/data may be transmitted to the external ProcessOn service. This can lead to unintended disclosure of sensitive business logic, architecture details, or source code, especially because the skill is designed to be triggered broadly for diagram-generation tasks.
The README instructs users to install and update the skill via npx skills from a GitHub repository without pinning an immutable version, tag, or commit. This creates a supply-chain risk: future upstream changes or a compromised repository/package could cause users to fetch and run different code than was originally reviewed.
The forced update command again pulls the skill from GitHub without a pinned version and explicitly encourages overwriting the current installation. If the upstream source changes maliciously or unexpectedly, users may automatically replace a known-good version with unreviewed code.
The skill invokes shell/Node commands, performs network access, and manages tokens, yet the manifest does not declare an explicit tool scope or allowed-tools policy. That mismatch weakens containment and review because the runtime capabilities materially exceed what the manifest communicates, increasing the chance of unintended command execution or secret handling.
Detected: suspicious.dangerous_exec, suspicious.exposed_secret_literal