Back to skill

Security audit

MiniMax Music Generation

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed MiniMax music-generation skill that sends user prompts or lyrics to MiniMax and saves generated lyrics and audio locally.

Install only if you are comfortable sending prompts, lyrics, titles, and any reference-audio URLs to MiniMax using your API key. Avoid secrets, regulated data, or proprietary lyrics unless your MiniMax account and data-handling terms allow it; monitor API usage/costs; and delete generated local lyric/audio files when no longer needed.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

Tainted flow: 'audio_url' from os.getenv (line 177, credential/environment) → requests.get (network output)

Critical
Category
Data Flow
Content
filename = f"{safe_title}_{timestamp}.mp3"
    filepath = os.path.join(save_dir, filename)

    response = requests.get(audio_url, timeout=60)
    with open(filepath, 'wb') as f:
        f.write(response.content)
Confidence
93% confidence
Finding
The script downloads from audio_url returned by the external API without validating the scheme, host, or content type. If the upstream service is compromised or returns a malicious/internal URL, this can trigger server-side request forgery behavior from the local machine and cause untrusted content to be written to disk.

Lp3

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding
The skill performs network access, reads an API key from the environment, and writes files locally, but does not declare permissions. This creates a transparency and consent gap: a host system or user may treat the skill as lower-risk than it is, while it can still transmit user content to a third party and persist generated data on disk.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill states that lyrics and audio are automatically saved to local paths, but does not clearly warn users that generated content will persist on disk. This can expose sensitive prompts, private lyrics, or copyrighted material to other local users, backups, or later unintended reuse.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill description omits a clear privacy warning even though prompts and lyrics are sent to external MiniMax endpoints. Users may provide confidential or proprietary text believing processing is local, when it is actually transmitted to a third-party service.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The documentation shows user-provided prompts and lyrics being sent to a third-party API along with an API key, but it does not clearly disclose that potentially sensitive user content will leave the local environment. In an agent skill context, this can lead to unintended data exfiltration of user inputs or copyrighted/private lyrics because integrators may copy the example without adding consent, notice, or data-handling safeguards.

External Transmission

Medium
Category
Data Exfiltration
Content
API_KEY = os.getenv("MINIMAX_API_KEY")

response = requests.post(
    "https://api.minimaxi.com/v1/lyrics_generation",
    headers={
        "Authorization": f"Bearer {API_KEY}",
Confidence
89% confidence
Finding
This duplicate finding captures the same outbound POST request and associated JSON payload. The security concern is the same: user content and authentication data are sent off-platform without surrounding documentation about privacy, consent, or data minimization.

External Transmission

Medium
Category
Data Exfiltration
Content
### 示例 2: 续写歌词

```python
response = requests.post(
    "https://api.minimaxi.com/v1/lyrics_generation",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={
Confidence
90% confidence
Finding
This duplicate finding points to the same external POST in the lyric-editing example. In the context of a music-creation skill, edited lyrics may be especially likely to contain user-owned creative work, making undisclosed transmission materially risky.

External Transmission

Medium
Category
Data Exfiltration
Content
### 示例 3: 指定标题

```python
response = requests.post(
    "https://api.minimaxi.com/v1/lyrics_generation",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={
Confidence
87% confidence
Finding
This duplicate finding reflects the same third-party transmission in the titled-song example. The risk remains unauthorized or unexpected export of user-provided creative content to the vendor service.

External Transmission

Medium
Category
Data Exfiltration
Content
API_KEY = os.getenv("MINIMAX_API_KEY")

response = requests.post(
    "https://api.minimaxi.com/v1/lyrics_generation",
    headers={
        "Authorization": f"Bearer {API_KEY}",
Confidence
89% confidence
Finding
This duplicate finding captures the same outbound POST request and associated JSON payload. The security concern is the same: user content and authentication data are sent off-platform without surrounding documentation about privacy, consent, or data minimization.

External Transmission

Medium
Category
Data Exfiltration
Content
### 示例 2: 续写歌词

```python
response = requests.post(
    "https://api.minimaxi.com/v1/lyrics_generation",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={
Confidence
90% confidence
Finding
This duplicate finding points to the same external POST in the lyric-editing example. In the context of a music-creation skill, edited lyrics may be especially likely to contain user-owned creative work, making undisclosed transmission materially risky.

External Transmission

Medium
Category
Data Exfiltration
Content
### 示例 3: 指定标题

```python
response = requests.post(
    "https://api.minimaxi.com/v1/lyrics_generation",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={
Confidence
87% confidence
Finding
This duplicate finding reflects the same third-party transmission in the titled-song example. The risk remains unauthorized or unexpected export of user-provided creative content to the vendor service.

Static analysis

No suspicious patterns detected.