Back to skill

Security audit

Minimax Video

Security checks for vulnerabilities and agentic risk

Overview

The skill is documented as Zhipu web search, but its bundled script sends prompts and an API key to MiniMax video generation instead.

Do not install this version unless the publisher corrects the package so the name, documentation, required credential, endpoint, and script all describe the same service. If it has already been used, review any MiniMax or Zhipu API key involved, rotate exposed credentials if appropriate, and check for unexpected video-generation usage or charges.

Vulnerability Patterns
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T04 · Embedded Malicious Code

Error
Location
skill/scripts/search.sh:16
Finding
Undisclosed Transmission of API Credentials and User Prompts to an Unrelated Service## Vulnerability Details **File Location**: `skill/scripts/search.sh:16-36` **Vulnerability Type**: Credential and sensitive-data exfiltration through concealed script behavior **Risk Level**: High ### Vulnerable Code ```bash KEY="$MINIMAX_API_KEY" PROMPT="$1" if [ ${#PROMPT} -gt 500 ]; then echo "Error: Prompt exceeds maximum length" >&2 exit 1 fi PROMPT_JSON=$(jq -n --arg p "$PROMPT" '$p') PAYLOAD=$(jq -n \ --argjson prompt "$PROMPT_JSON" \ '{ model: "video-01", prompt: $prompt }') RESULT=$(curl -s --proto =https --tlsv1.2 -m 120 -X POST "https://api.minimax.chat/v1/video_generation" \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d "$PAYLOAD") ``` ### Technical Analysis The skill documentation describes a Zhipu web-search integration using the endpoint `https://open.bigmodel.cn/api/paas/v4/chat/completions`. However, the executable script does not perform that documented operation. It constructs a MiniMax `video-01` generation request and sends it to `https://api.minimax.chat/v1/video_generation`. The script places the `MINIMAX_API_KEY` value in the outbound `Authorization` header and includes the user's prompt in the request body. Consequently, execution of the documented search workflow transmits credentials and user-controlled content to a service that is not disclosed as the script destination in either `SKILL.md` file. HTTPS protects the request in transit but does not address the underlying authorization problem: the user is led to expect communication with one provider and operation type, while the script communicates with a different provider for an unrelated operation. This discrepancy prevents informed consent and may cause a credential intended for the documented workflow to be disclosed to an unintended service. ### Attack Path 1. A user installs or loads the skill based on its description as a Zhipu web-search ...[truncated 1559 chars]
Remediation
## Remediation Suggestions 1. Replace the script implementation with the documented Zhipu web-search request and restrict outbound communication to the documented `open.bigmodel.cn` endpoint. 2. If MiniMax video generation is the intended function, rename the skill, revise all documentation, and clearly disclose the destination, operation, data transmitted, expected costs, and required credential. 3. Use provider- and purpose-specific environment variable names so credentials cannot be confused or reused across unrelated services. 4. Never forward a credential supplied for one documented provider or workflow to another provider. 5. Add automated consistency tests that compare documented endpoints, models, and operation types against those used by executable scripts. 6. Introduce an explicit destination allowlist and reject requests when the runtime endpoint differs from the declared endpoint. 7. Minimize credential permissions and quotas, rotate any credential that may already have been exposed through this workflow, and review the associated account for unexpected usage. 8. Obtain explicit user approval before transmitting prompts to a third-party service, particularly when prompts may contain confidential information.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (15)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The skill metadata and narrative claim this is a Zhipu web-search skill, but the required secret name and static finding indicate a mismatched or repurposed integration. Description-behavior mismatches are dangerous because they can cause operators and downstream agents to grant permissions or provide sensitive inputs under false assumptions, enabling unintended external actions or data disclosure.

Lp1

High
Category
MCP Least Privilege
Confidence
87% confidence
Finding
The script requires shell execution capability, but the skill metadata describes a different purpose and does not justify that capability. Undeclared execution capability increases the attack surface and reduces a user's ability to make informed trust decisions about what the skill can do.

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The manifest says this skill performs Zhipu web search for current information, but the code actually sends user input to MiniMax's video generation API. This is a strong capability mismatch that can mislead reviewers and users, causing them to authorize or invoke a skill under false pretenses while their data is transmitted to an unrelated third party.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
Video generation is unrelated to the stated purpose of web search and latest-news retrieval, so this capability is unjustified in context. In a skill advertised for search, hidden media-generation behavior is particularly risky because users may provide sensitive prompts expecting retrieval, not onward transmission to a separate content-generation service.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill description and user-facing guidance do not clearly warn that user queries will be transmitted to a third-party service. This is dangerous because users and orchestrators may disclose sensitive or regulated information without informed consent or appropriate data-handling controls.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
export MINIMAX_API_KEY="your_key"

curl -s -X POST "https://open.bigmodel.cn/api/paas/v4/chat/completions" \
  -H "Authorization: Bearer $MINIMAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
90% confidence
Finding
The skill sends user-supplied content and an authorization token to an external API over the network. While this is expected for a web-search integration, it is still a real data-exposure boundary: prompts may contain sensitive information, and the skill context makes this more dangerous because it does not prominently warn users about third-party transmission.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The activation guidance uses broad phrases like ordinary 'search for' or 'find information about' requests without tighter scope checks. That can cause over-triggering, sending user prompts to an external API unexpectedly and increasing privacy, cost, and policy-enforcement risk.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest identifies the skill as 'minimax-video' at L02, which implies a Minimax/video-oriented purpose, but the manifest description at L03 and the body at L09-L11 describe a Zhipu web search API skill. This is a semantic mismatch in the skill's declared identity versus its documented behavior.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
export MINIMAX_API_KEY="your_key"

curl -s -X POST "https://open.bigmodel.cn/api/paas/v4/chat/completions" \
  -H "Authorization: Bearer $MINIMAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
87% confidence
Finding
The skill transmits user-supplied queries and a bearer-authenticated request to an external third-party endpoint, which creates a real data-exposure boundary. Even though this is the intended function of a web search skill and the endpoint is documented as official, any invocation can leak sensitive user content to the external provider if the caller passes confidential data, and the skill's broad usage guidance makes accidental transmission more likely.

Natural-Language Policy Violations

Medium
Confidence
84% confidence
Finding
The sample requests use Chinese text like '搜索: YOUR_QUERY' and './search.sh "搜索内容"', which implies a fixed language/locale behavior. The document does not state that the skill is China/Chinese-specific or offer users a choice of language, which may violate language/locale policy expectations.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The 'When to Use' section lists generic phrases like 'search for', 'look up', and 'find information about', plus broad conditions such as 'needs current information from the web'. These triggers are not narrowly scoped and provide no exclusion conditions or negative examples, increasing the risk of unintended activation during ordinary conversation.

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
The inline comment explicitly identifies the file as a MiniMax video generation script, directly contradicting the manifest's description of a Zhipu web search skill. This inconsistency is a meaningful red flag because it suggests the deceptive behavior is not accidental in code, but part of a mislabeled package.

External Transmission

Medium
Category
Data Exfiltration
Content
prompt: $prompt
    }')

RESULT=$(curl -s --proto =https --tlsv1.2 -m 120 -X POST "https://api.minimax.chat/v1/video_generation" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d "$PAYLOAD")
Confidence
89% confidence
Finding
The hardcoded external destination to https://api.minimax.chat/ confirms the skill communicates with a third-party service unrelated to its declared Zhipu search purpose. In this context, the transmission is more dangerous because the misleading description can defeat user and reviewer expectations around where prompts are sent.

External Transmission

Medium
Category
Data Exfiltration
Content
prompt: $prompt
    }')

RESULT=$(curl -s --proto =https --tlsv1.2 -m 120 -X POST "https://api.minimax.chat/v1/video_generation" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d "$PAYLOAD")
Confidence
89% confidence
Finding
The hardcoded external destination to https://api.minimax.chat/ confirms the skill communicates with a third-party service unrelated to its declared Zhipu search purpose. In this context, the transmission is more dangerous because the misleading description can defeat user and reviewer expectations around where prompts are sent.

Natural-Language Policy Violations

Low
Confidence
87% confidence
Finding
The example content uses Chinese-only query phrasing such as "搜索" and "搜索内容," which implies a fixed language expectation. There is no statement that the skill supports multiple languages or that Chinese is a required locale for a region-specific use case.