Back to skill

Security audit

Mediaio Image to Video API

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Media.io image-to-video API helper that sends user-provided generation requests to Media.io using a documented API key.

Install only if you intend to use Media.io OpenAPI. Use a Media.io-specific key for API_KEY, expect prompts, image URLs, task IDs, and credit checks to be sent to Media.io, and remember that generation calls may consume account credits.

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

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 --url https://openapi.media.io/user/credits --header 'Content-Type: application/json' --header 'X-API-KEY: <api-key>' --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\"}],\"title\":\"Response\"}",
    "api_code_demo": "{\"list\":[{\"code\":\"0\",\"describe\":\"Success\"}],\"title\":\"Status Code\"}",
    "content": null,
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
No manifest is available, so there is no declared purpose that would justify accessing local environment secrets. The code automatically reads `API_KEY` from the process environment to authorize outbound API calls, which is a privileged capability beyond generic routing logic and should be explicitly scoped by the skill's stated intent.

Static analysis

No suspicious patterns detected.