Back to skill

Security audit

Ai Agentic Video Editor

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real remote AI video-editing integration, but it asks users to trust broad autonomous editing and unpinned local MCP execution with an API key.

Install only if you are comfortable sending video-editing prompts, project/media metadata, and optional images/assets to the Levea/Livecore service. Use the documented production API host, keep the API key scoped and rotate it if exposed, require plan approval for important edits, preview outputs before publishing, and avoid the unpinned `npx` MCP setup unless you can pin and review the package version.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:8
Finding
Bearer Credential and Sensitive Editing Data Can Be Sent to a Configurable Host<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:8-21, 36-41, 61-69` **Vulnerability Type**: Unvalidated security-sensitive endpoint configuration **Risk Level**: Medium ### Vulnerable Code ```yaml requires: env: - ADSCENE_API_URL - ADSCENE_API_KEY bins: - curl - jq primaryEnv: ADSCENE_API_KEY envVars: - name: ADSCENE_API_URL required: true description: Base URL for the Levea API, for example https://api.livecore.ai. Do not use the studio URL or the /api/v1/misc/editor route. - name: ADSCENE_API_KEY required: true description: OpenClaw API key generated from the Studio app at https://studio.livecore.ai/. ``` ```bash curl -sS -X POST "$ADSCENE_API_URL/api/v1/misc/openclaw/v1/execute" \ -H "Authorization: Bearer $ADSCENE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "tool": "autonomous_edit", "params": { "prompt": "Make this a TikTok-ready viral clip: vertical reframe, add bold captions, remove silences, and apply motion tracking to the speaker." }, "project_id": "my-project" }' ``` The same configurable-host pattern is repeated in the job polling and result-fetching examples at `SKILL.md:285-294`. Equivalent documentation using `LEVEA_API_URL` and `LEVEA_API_KEY` appears in `README.md:234-264` and `README.md:344-352`. ### Technical Analysis The Skill must transmit an API credential and user editing data to a remote service to provide its declared video-editing functionality. That network access is therefore functionally necessary. However, the destination receiving the bearer credential is taken directly from the configurable `ADSCENE_API_URL` environment variable. The documentation recommends `https://api.livecore.ai`, but the demonstrated commands do not enforce the HTTPS scheme, exact hostname, or expected port before attaching the `Authorization` header. If an attacker or compromised configuration source can alter `ADSCENE_API_URL`, subsequent requests will ...[truncated 1878 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Default to and enforce the exact production origin: ```text https://api.livecore.ai ``` 2. Before attaching the bearer token, parse and validate the endpoint: - Require HTTPS. - Require the exact approved hostname. - Reject embedded credentials, fragments, unexpected ports, and hostname suffix tricks. - Resolve the final URL using a proper URL parser rather than string or prefix checks. 3. If custom or self-hosted endpoints are genuinely supported, require an explicit opt-in and maintain a separate administrator-controlled allowlist. 4. Configure the HTTP client to reject redirects for authenticated requests, or independently validate every redirect destination before forwarding credentials. 5. Avoid placing credentials in command-line arguments. The current header expansion occurs in the shell process rather than directly in the command text, but a dedicated client with protected secret handling would reduce accidental exposure. 6. Document exactly what data is transmitted remotely and require user consent before uploading media, images, scene data, or working memory. 7. Scope API keys to the minimum required account, project, and operation permissions. Support key rotation and revocation after suspected exposure. 8. Add automated tests confirming that HTTP endpoints, malformed URLs, look-alike domains, and unapproved hosts are rejected before authorization headers are created. ]]>

T08 · Insecure Dependencies

Warning
Location
README.md:34
Finding
Unpinned npx Installation Executes the Latest Third-Party Package Release<![CDATA[ ## Vulnerability Details **File Location**: `README.md:34-45, 58-59, 427-435` **Vulnerability Type**: Unpinned executable dependency **Risk Level**: Medium ### Vulnerable Code ```jsonc { "mcpServers": { "levea": { "command": "npx", "args": ["-y", "levea-mcp-server"], "env": { "LEVEA_API_URL": "https://api.livecore.ai", "LEVEA_API_KEY": "your-key-from-studio.livecore.ai" } } } } ``` The setup instructions also provide the following commands: ```text claude mcp add levea -e LEVEA_API_URL=https://api.livecore.ai -e LEVEA_API_KEY=... -- npx -y levea-mcp-server ``` ```text openclaw mcp add levea --command "npx -y levea-mcp-server" --env LEVEA_API_URL=https://api.livecore.ai --env LEVEA_API_KEY=... ``` The documentation explicitly states at `README.md:435`: ```text Versions aren't pinned here — `npx -y levea-mcp-server` and the ClawHub listing always pull the latest, and the linked npm / ClawHub pages show the current version. You never need a specific number. ``` ### Technical Analysis The recommended installation runs `npx -y levea-mcp-server` without an exact version or integrity constraint. As a result, the effective local executable can change after this Skill has been reviewed. The `-y` option suppresses the interactive installation confirmation, further reducing the opportunity for users to notice that a new package version is being downloaded. The MCP server is launched with `LEVEA_API_KEY` in its environment. A malicious or compromised future package release would therefore execute locally with the permissions of the MCP client process and would receive the configured API credential. No evidence in the audited files proves that the current npm package is malicious. The confirmed issue is the unsafe dependency policy: an unreviewed future release is automatically trusted and executed. ### Attack Path 1. An attacker compromises the npm package publisher account, the package's build or ...[truncated 1365 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the package to a reviewed exact version, for example: ```json { "command": "npx", "args": ["-y", "levea-mcp-server@1.2.3"] } ``` Replace the example version with the actual audited release. 2. Do not use broad ranges, tags such as `latest`, or omitted versions in production configuration. 3. Prefer a lockfile-backed installation workflow and verify package integrity hashes before execution. 4. Establish a controlled update process: - Review release notes and source changes. - Verify package provenance and publisher identity. - Test the release in a restricted environment. - Update the pinned version only after approval. 5. Where supported, use npm package provenance/signature verification and organization-level dependency allowlisting. 6. Run the MCP server in a sandbox with: - Minimal filesystem access. - Restricted outbound network access. - No unnecessary operating-system privileges. - A narrowly scoped API key. - No unrelated secrets in the inherited environment. 7. Remove or revise the statement that users never need a specific version. Security-sensitive executable dependencies should remain stable until explicitly reviewed and upgraded. 8. Consider distributing a verified artifact with a published checksum or software bill of materials so users can confirm precisely which code will execute. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The README instructs users to run `npx -y levea-mcp-server` without pinning a version, which causes clients to fetch and execute whatever package version is current at install time. If the npm package is compromised, unpublished/replaced, or a malicious update is published, users and agents may execute attacker-controlled code during setup.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
This line again promotes unpinned execution of `levea-mcp-server`, creating a software supply-chain risk. Because MCP servers are executed locally and often receive API keys and broad tool access, an unexpected upstream version can run arbitrary code in the user's environment.

Natural-Language Policy Violations

Medium
Confidence
89% confidence
Finding
The typography capability is described as limited to 'English / Latin-ASCII' captions, which imposes a language/script restriction in the skill's natural-language behavior. The document does not present this as an opt-in choice or provide a region-specific justification, so it may violate language/locale policy requirements.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This line explicitly says captions currently render only English/Latin-ASCII typography and excludes non-Latin, CJK, and RTL scripts. That is a natural-language policy concern because the skill enforces a language/script limitation rather than offering user choice or a documented, justified locale boundary.

External Transmission

Medium
Category
Data Exfiltration
Content
Every edit goes through one tool — `autonomous_edit`. Pass a natural-language description; the agent plans, executes, verifies, and exports. No tool list to memorize, no structured params to learn.

```bash
curl -sS -X POST "$LEVEA_API_URL/api/v1/misc/openclaw/v1/execute" \
  -H "Authorization: Bearer $LEVEA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The statement that users should always pull the latest version explicitly normalizes running unpinned code, increasing supply-chain exposure. In the context of an agent skill that may be installed and executed automatically, this makes compromise of the package distribution path more impactful.

External Transmission

Medium
Category
Data Exfiltration
Content
- ADSCENE_API_URL
        - ADSCENE_API_KEY
      bins:
        - curl
        - jq
    primaryEnv: ADSCENE_API_KEY
    envVars:
Confidence
92% confidence
Finding
This skill is explicitly designed to transmit user prompts, project identifiers, optional scene data, working memory, and possibly attached images/assets to an external API using an API key. That is an external data egress path, and in this context it is security-relevant because the editor is autonomous, can resume prior state via workingMemory, and may process sensitive user media or metadata off-platform.

Vague Triggers

Medium
Confidence
96% confidence
Finding
The skill advertises itself for a very broad set of common video-editing requests, which can cause the agent to invoke this external, autonomous editing service in many situations without tight user-intent boundaries. Because the tool sends prompts and potentially scene/media context to a remote API and can perform mutating edits plus auto-export, overbroad activation increases the chance of unnecessary data exposure or unintended destructive actions.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# 1) Kick off the viral-clip pipeline (auto-export follow-up queues rendering)
curl -sS -X POST "$ADSCENE_API_URL/api/v1/misc/openclaw/v1/execute" \
  -H "Authorization: Bearer $ADSCENE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
90% confidence
Finding
The example invocation demonstrates direct transmission of requests to a third-party endpoint with bearer-token authentication and encourages automation around export/job polling. In context, this reinforces a real egress mechanism that can send editing instructions and associated project context externally, with possible leakage of sensitive media-processing requests or project identifiers if invoked broadly or without consent.

Static analysis

No suspicious patterns detected.