Skip to content

[Security] Arbitrary file read and exfiltration via voice_clone file parameter #97

Description

@Correctover

Summary

The voice_clone() tool accepts an arbitrary local file path via the file parameter without validating file type before reading and uploading it to the MiniMax API.

Details

File: minimax_mcp/server.py, function voice_clone()

if is_url:
    response = requests.get(file, stream=True)  # SSRF
    files = {"file": ("audio_file.mp3", response.raw, "audio/mpeg")}
else:
    with open(file, "rb") as f:  # Arbitrary file read
        files = {"file": f}
    response_data = api_client.post("/v1/files/upload", files=files, data=data)

No validation of file type, content, or path confinement.

Impact

  • Read SSH keys, credentials, source code
  • Exfiltrate sensitive data via API upload

Suggested Fix

Validate file extension, check magic bytes, enforce path confinement to base_path.

Reported by Correctover Security Research (https://correctover.com)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions