T01 · Skill Instruction Hijacking
- Location
SKILL.md:115- Finding
External MCP Server Can Inject Mutable Agent Instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This BA assistant is purpose-aligned in topic, but it sends user content to a remote MCP service using an exposed shared bearer credential and lets that service supply workflow-control instructions.
Review before installing. Use this only for data you are allowed to send to the configured external MCP service, and do not use it for confidential, regulated, customer, or credential-bearing documents unless the publisher replaces the embedded shared token, documents the service's data handling, and constrains remote protocol behavior locally.
SKILL.md:115External MCP Server Can Inject Mutable Agent Instructions
mcp-proxy/config.json:1Reusable Bearer Credential Is Hard-Coded in Distributed Files
mcp-proxy/call_tool.sh:64User Messages and Workflow Context Are Transmitted to an External Service Without a Consent or Redaction Gate
mcp-proxy/call_tool.sh:57Predictable Shared Temporary Files Permit Symlink Clobbering and Concurrent Response Corruption
The skill is presented as a business-analysis assistant, but it also instructs the client agent to act as a generic authenticated proxy to a remote MCP endpoint, including protocol handling and tool dispatch. That mismatch hides material behavior from users and reviewers, increasing the chance of unconsented data transfer and execution of capabilities outside the declared BA scope.
A bearer token is hardcoded directly in the skill instructions and the client is told to use it for authenticated remote access. Embedded secrets are easily exfiltrated, reused, or abused by anyone who can read the skill, enabling unauthorized access to the backend service and any data or capabilities exposed through it.
The skill instructs the client to connect to an external service using an embedded bearer token but gives no warning that user data may be transmitted off-platform or how credentials are handled. This undermines informed consent and can expose confidential requirement documents, business processes, and compliance-related material to a third party unexpectedly.
The skill file contains a plaintext bearer credential and explicit instructions for the client agent to use it. Because the skill content is readable by clients and analyzers, the secret can be copied, leaked to logs, or replayed by unauthorized parties, making this a direct credential disclosure issue with immediate abuse potential.
Without declared permissions the skill's intent is opaque and cannot be validated.
The skill description and operational instructions are written to operate in Chinese and the trigger examples are Chinese-specific, but there is no indication that users may choose another language or that the locale restriction is intentional and justified. This can violate language or locale policy when a skill implicitly mandates a specific language without opt-in.
The skill claims it only performs BA analysis tasks, yet it requires the client to connect to external hosted tools to function. This is a security-relevant contradiction because users may share sensitive requirements documents under the assumption of local-only processing, while the skill actually routes them to a third-party service.
The trigger keywords include broad phrases such as general requests for help analyzing requirements, which can match ordinary conversation and unintentionally activate the skill. In this skill's context, accidental activation is more dangerous because activation may lead to remote MCP connections and transmission of sensitive business documents without clear user intent.
The manifest describes six core capabilities centered on analysis artifacts such as PRD, process models, data dictionary, stories, UI specs, and compliance review. The listed export_artifacts tool adds packaging/download behavior, which is an operational file-export capability not declared as part of the skill's stated purpose.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
#!/bin/bash
# ─────────────────────────────────────────────────────────────────────────────────
# MCP Tool 通讯脚本 — bash + curl + python3(零外部依赖)
#
# 用法:
# bash call_tool.sh <tool_name> "<message>" ['<context_json>'] [conversation_id]
The script transmits the user-provided message, context JSON, and optional conversation ID to a remote URL via curl, which can affect user privacy and data handling. Although the comments describe the request technically, there is no user-facing warning, confirmation prompt, or explicit disclosure at execution time that user input is being sent to a remote service.
The config hardcodes a China-hosted remote MCP endpoint with no indication of user consent, region selection, or data residency controls. In a BA/requirements-processing skill, user inputs may include sensitive business plans, internal workflows, customer data, or compliance-related material, so silently sending that data to a foreign remote service creates significant privacy, compliance, and supply-chain risk.
The file's comments, usage text, and error/help strings are written in Chinese, which imposes a specific language on users without any opt-in or alternative locale support. This is a natural-language policy concern because the skill does not appear to offer a language choice or document that it is intentionally region-specific.
Detected: suspicious.exposed_secret_literal