Back to skill

Security audit

Media.io Hailuo Video Generator

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Media.io API wrapper for Hailuo video generation, with expected network use and API-key handling.

Before installing, understand that this skill uses your Media.io API key and sends generation inputs such as prompts, image URLs, task IDs, and request metadata to Media.io. Do not submit secrets, private internal URLs, regulated data, or sensitive personal media unless that use is approved for your account.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill clearly instructs users to supply an API key and invoke a third-party service, but it does not warn that prompts, images, or other submitted media will be transmitted to Media.io for processing. This can lead users to unknowingly send sensitive data to an external provider, creating privacy, compliance, and data-handling risks.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The documentation instructs users to send an API key to an external service but does not include any user-facing disclosure about credential handling, third-party transmission, or precautions for sensitive data. In an agent skill context, this can lead users to provide secrets or invoke remote services without understanding that requests and data leave the local environment.

External Transmission

Medium
Category
Data Exfiltration
Content
"description": "API to query user credits balance.",
    "api_header": "{\"list\": [{\"name\": \"X-API-KEY\", \"value\": \"API key to authorize requests\"}, {\"name\": \"Content-Type\", \"value\": \"application/json\"}], \"title\": \"Authorizations\", \"describe\": \"Add the following authorization information in the request header\"}",
    "api_body": "{\"title\": \"Request Body\", \"category\": [{\"list\": [], \"title\": \"Query Credits\", \"describe\": \"Request body to query user credits balance\"}]}",
    "api_request_demo": "{\"title\": \"Example Request\", \"request\": [{\"title\": \"Query User Credits\", \"language\": \"cURL\", \"code_example\": \"curl --request POST \\n  --url https://openapi.media.io/user/credits \\n  --header 'Content-Type: application/json' \\n  --header 'X-API-KEY: <api-key>' \\n  --data '{}'\"}]}",
    "api_response": "{\"list\": [{\"name\": \"code\", \"type\": \"integer\", \"describe\": \"Response status code, 0 indicates success\"}, {\"name\": \"msg\", \"type\": \"string\", \"describe\": \"Response message, empty string on success\"}, {\"name\": \"data\", \"type\": \"object\", \"describe\": \"Response data object\"}, {\"name\": \"credits\", \"type\": \"integer\", \"describe\": \"User credits balance, located within the data object\"}], \"title\": \"Response\", \"describe\": \"After the request is successfully processed, the server will return the following response\"}",
    "api_code_demo": "{\"list\": [{\"code\": \"0\", \"describe\": \"Success\"}, {\"code\": \"40001\", \"describe\": \"Invalid API key\"}, {\"code\": \"40002\", \"describe\": \"API key expired\"}], \"title\": \"Status Code\"}",
    "content": null,
Confidence
89% confidence
Finding
The example demonstrates a live outbound request to an external API endpoint using an API key in headers. While this is normal API documentation behavior, in an agent skill it still represents external transmission of credentials and request data, which becomes risky if users are not clearly informed or if the surrounding system auto-executes such examples.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
The image-to-video documentation has users submit image URLs and free-form prompts to an external generation API without clearly warning that this user-supplied content will be transmitted to a third party. Because image URLs and prompts may contain private, copyrighted, or otherwise sensitive information, the lack of disclosure increases the risk of unintentional data leakage.

Missing User Warnings

Medium
Confidence
98% confidence
Finding
This second image-to-video endpoint repeats the same issue: it collects user-controlled image URLs and prompts for remote processing but omits a clear disclosure that the content is transmitted to an external service. In a skill setting, users may assume local-only processing and unknowingly expose sensitive media references or prompt content.

Static analysis

No suspicious patterns detected.