Back to skill

Security audit

Minimax Coding Plan Tool

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches a MiniMax API tool, but it publishes a full credential-like token and tells users to install it.

Do not install this version as written unless the embedded token has been removed and rotated. Use only your own MiniMax/OpenClaw credential, and be aware that image-understanding requests can upload local image files to MiniMax when you provide a file path.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:44
Finding

Hard-Coded OpenClaw OAuth Token in Skill Documentation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 44–48
Vulnerability Type: Hard-coded secret / exposed OAuth credential
Risk Level: High

Vulnerable Code

markdown
API Key 使用你的 OpenClaw OAuth Token:

```bash
openclaw config set skills.entries.minimax-coding-plan-tool.apiKey "sk-cp-gr3tv5pdbN3aPQRhXbREJQrHymKxPZhdn9mdS2Ak9B2uD39bKTTJyRJhBdLRjWrd2KbkEFV8-Zd03HgRkJwCTbLq3NYtmAzZ6U2C2Dfb35o5g89RoDBLBv8"
text

### Technical Analysis

The documentation contains a complete credential-shaped OpenClaw OAuth token instead of a redacted example or environment-variable placeholder. Anyone able to access the distributed skill package or its repository history can extract and attempt to reuse this credential.

The implementation reads the configured value from `MINIMAX_API_KEY` and sends it to the fixed MiniMax API host as an HTTP Bearer credential:

```javascript
const API_KEY = process.env.MINIMAX_API_KEY;
const API_HOST = 'api.minimaxi.com';

// ...

headers: {
  'Content-Type': 'application/json',
  'Authorization': `Bearer ${API_KEY}`
}

Consequently, a user who follows the documented configuration command installs the exposed shared credential into their OpenClaw configuration. The problem is the disclosure and distribution of the token, not the normal use of Bearer authentication over HTTPS.

Attack Path

  1. An attacker downloads the skill package or reads SKILL.md.
  2. The attacker extracts the embedded sk-cp-... OAuth token.
  3. The attacker configures the token as MINIMAX_API_KEY or submits it directly as a Bearer credential to supported MiniMax API endpoints.
  4. If the credential remains active, the attacker invokes API operations under its associated account and authorization scope.
  5. The attacker may consume available quota, generate attributable API activity, or access any other capabilities granted to that token.

No additional prerequisite beyond access to the published file is required.

Impact Assessment

Succ ...[truncated 931 chars]

Remediation
View remediation

Remediation Suggestions

  1. Revoke the exposed token immediately through the relevant OpenClaw or MiniMax credential-management interface.
  2. Issue a replacement credential only if it is still required, and do not commit or publish it.
  3. Replace the documented secret with a nonfunctional placeholder, for example:
bash
openclaw config set skills.entries.minimax-coding-plan-tool.apiKey "$MINIMAX_API_KEY"

or:

bash
openclaw config set skills.entries.minimax-coding-plan-tool.apiKey "sk-cp-..."
  1. Require each user to supply an independently issued credential through protected environment variables or an approved secret store.
  2. Remove the token from all repository branches, tags, release artifacts, caches, and documentation history. Rotation remains mandatory because deleting the current copy does not invalidate previously downloaded copies.
  3. Add automated secret scanning to commits and release pipelines, including detection rules for the sk-cp- token prefix.
  4. Apply least-privilege scopes, quota limits, expiration, and usage monitoring to replacement credentials.
  5. Review API logs for unauthorized activity associated with the exposed token and respond to any identified misuse.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The skill’s declared behavior and its documented/implemented capabilities do not fully match, including web search functionality that is omitted or inconsistently described. Capability mismatches are dangerous because they can mislead users and reviewers about what the skill can do, weakening consent and increasing the chance that a broader-capability tool is installed under false assumptions.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The documentation contains a full credential-like token string and instructs users to set it directly as an API key. Exposing a real or realistic bearer token in skill docs is dangerous because it can lead to credential theft, unauthorized API usage, quota exhaustion, billing impact, and accidental propagation into logs, screenshots, or repositories.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The image understanding path accepts a local file path, reads the file, base64-encodes it, and sends it to a remote API. In an agent/tool context, this can cause unintended exfiltration of sensitive local images or screenshots if a user or upstream prompt supplies a path without a clear runtime warning and consent boundary.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest description says the skill supports 图片生成、图像理解、语音合成和视频生成, implying image generation, image understanding, speech synthesis, and video generation. In this file, the exposed tools and command handlers only implement web search, image understanding, and image generation; there is no speech synthesis or video generation implementation, while an extra web search capability is present instead.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description says the tool supports image generation, image understanding, speech synthesis, and video generation, but does not mention web search. Later documentation explicitly lists and documents a minimax_web_search tool, so the declared scope in the manifest is narrower than the documented skill behavior.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The documentation emphasizes '无需外部MCP服务器' and '无需外部工具依赖', which is accurate about MCP/tooling, but the skill still depends on an external MiniMax service and an API key/OAuth token to function. This is not a code contradiction, but the docs could mislead users about the operational dependency model if interpreted as being self-contained.

Content

No source excerpt is available for this finding.