T08 · Insecure Dependencies
- Location
SKILL.md:21- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a straightforward MiniMax image-generation helper, with expected API-key use and outbound prompt submission but no hidden persistence or unrelated data access found.
Install only if you are comfortable sending image prompts to MiniMax and using your MiniMax quota. Store MINIMAX_API_KEY as an environment variable, avoid sensitive personal or secret data in prompts, install dependencies in a virtual environment, and write outputs to a private directory where overwriting minimax_gen_*.png will not damage existing files.
SKILL.md:21Unpinned Third-Party Dependency Installation
scripts/image_gen.py:110Predictable Output Files Permit Symlink-Based File Overwrite
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
if enhance:
print(f"[minimax-image-gen] Prompt enhanced: {final_prompt[:60]}...", file=sys.stderr)
response = requests.post(url, headers=headers, json=payload, timeout=60)
response.raise_for_status()
data = response.json()
The skill description promises behavior that is broader or different from what is actually documented, including broad natural-language trigger support, quota-related claims, and undeclared local file output behavior. Description/behavior mismatch is dangerous because it can mislead users and automated routing into invoking the skill under assumptions that are not enforced, reducing informed consent and review accuracy.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
## Region & API Configuration
| Region | API Endpoint | Get Key From |
|--------|-------------|-------------|
| **China** | `api.minimax.chat` | platform.minimaxi.com |
| **Global** | `api.minimax.io` | www.minimax.io |
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
"""Enhance short prompts with professional parameters."""
if len(prompt.split()) < 8:
return DEFAULT_ENHANCEMENT_PREFIX + prompt
return prompt
def get_api_key_and_url(region: str):
The listing states that the skill uses an API key and sends prompts to MiniMax endpoints, but it does not clearly warn users that their text input will be transmitted to an external service or explain what data may leave the local environment. This can lead to users unintentionally sharing sensitive information in prompts, while also exposing them to unexpected network activity and account quota usage.
The example trigger phrases are very broad natural-language requests like “帮我画” and “画一只猫,” which can easily overlap with ordinary conversation and cause the skill to run when the user may only be speaking generally. In an agent environment, this increases the risk of unintended external API calls, token consumption, and prompt transmission to a third-party service without sufficiently explicit user intent.
The documented trigger phrases are very broad natural-language expressions like “帮我画” and “画一只猫,” which overlap heavily with ordinary conversation and can cause accidental invocation of the skill. In an agent ecosystem, this increases the chance of unintended tool execution and unreviewed outbound API usage, especially because the examples imply automatic execution of a Python command.
The documentation instructs users to configure a MiniMax API key but does not warn that the credential is sensitive, should not be hardcoded, logged, committed, or shared with prompts and generated outputs. This omission can lead to credential leakage through misconfiguration, screenshots, shell history, or repository commits, resulting in unauthorized API use and quota or billing abuse.
The README documents very broad natural-language triggers such as '帮我画' and 'generate an image' without defining clear activation boundaries, exclusions, or confirmation logic. In an agent environment, overly generic trigger phrases can cause unintended invocation during ordinary conversation, which may lead to unexpected external API use, quota consumption, and accidental transmission of user prompts to a third-party service.
The skill documents use of environment secrets and outbound network access, but it does not declare an explicit tool scope such as permissions or allowed-tools. That weakens least-privilege controls and makes the skill's effective capabilities less transparent to users and reviewers, increasing the chance of unintended secret access or data transmission.
The listed trigger phrases are very broad and overlap with common user requests such as 'draw' or 'generate an image.' Overbroad activation language can cause the skill to be selected too often, leading to unintended transmission of prompts to third-party services and surprise use of API-backed functionality.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# API endpoints by region
ENDPOINTS = {
"global": "https://api.minimax.io/v1/image_generation",
"cn": "https://api.minimax.chat/v1/image_generation",
}
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# API endpoints by region
ENDPOINTS = {
"global": "https://api.minimax.io/v1/image_generation",
"cn": "https://api.minimax.chat/v1/image_generation",
}
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# API endpoints by region
ENDPOINTS = {
"global": "https://api.minimax.io/v1/image_generation",
"cn": "https://api.minimax.chat/v1/image_generation",
}
DEFAULT_ENHANCEMENT_PREFIX = (
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# API endpoints by region
ENDPOINTS = {
"global": "https://api.minimax.io/v1/image_generation",
"cn": "https://api.minimax.chat/v1/image_generation",
}
DEFAULT_ENHANCEMENT_PREFIX = (
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
if enhance:
print(f"[minimax-image-gen] Prompt enhanced: {final_prompt[:60]}...", file=sys.stderr)
response = requests.post(url, headers=headers, json=payload, timeout=60)
response.raise_for_status()
data = response.json()
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
parser.add_argument("--n", type=int, default=1,
help="Number of images (1-9)")
parser.add_argument("--no-enhance", action="store_true",
help="Disable prompt enhancement")
parser.add_argument("--region", "-r", required=True,
choices=["cn", "global"],
help="API region: cn (China) or global (International)")
No suspicious patterns detected.