Back to skill

Security audit

Skill Bundle

Security checks for vulnerabilities and agentic risk

Overview

This video-editing skill is mostly coherent, but its setup guidance encourages running an unpinned MCP package that receives an API key, and its configurable API endpoint can expose that key and user content if misconfigured.

Review before installing. Use the ClawHub skill only with the official API host, avoid placing secrets or sensitive unreleased media in prompts or attachments unless remote processing is acceptable, and prefer a pinned reviewed MCP server version instead of the README's unpinned `npx -y levea-mcp-server` command. Rotate the API key if it may have been exposed to an unintended endpoint or package.

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:16
Finding
Configurable API Endpoint Can Expose Bearer Credentials and User Content## Vulnerability Details **File Location**: `SKILL.md`, lines 16–21, 36–41, and 61–69 **Vulnerability Type**: Unrestricted credential destination **Risk Level**: Medium ### Vulnerable Code ```yaml 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/. ``` ```markdown `POST {ADSCENE_API_URL}/api/v1/misc/openclaw/v1/execute` Auth: `Authorization: Bearer {ADSCENE_API_KEY}` Create an account and generate the OpenClaw API key in Studio: `https://studio.livecore.ai/`. Use `https://api.livecore.ai` for `ADSCENE_API_URL`; Studio is only for signup, login, and key management. ``` ```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" }' ``` ### Technical Analysis The Skill obtains both the API base URL and bearer credential from environment variables and sends the credential to the configured URL without enforcing that the destination is the official Levea API origin. Although the documentation recommends `https://api.livecore.ai`, this recommendation is not a technical security control. If `ADSCENE_API_URL` is changed through misconfiguration, a compromised environment, or malicious installation guidance, the documented command sends the `ADSCENE_API_KEY` directly to the substituted server. The request can also contain prompts, project iden ...[truncated 1823 chars]
Remediation
## Remediation Suggestions 1. Use a fixed production endpoint such as `https://api.livecore.ai` unless custom deployments are an explicit functional requirement. 2. If endpoint configurability is required, parse the URL and enforce an allowlist of approved HTTPS origins before constructing any authenticated request. 3. Reject plaintext HTTP, embedded credentials, unexpected ports, malformed hosts, and lookalike domains. 4. Disable redirects for authenticated API requests where possible. Otherwise, reject every cross-origin redirect and strip authorization headers before any redirected request. 5. Separate endpoint configuration from credential release so the bearer token is attached only after origin validation succeeds. 6. Document exactly which user data is transmitted, including prompts, media references, screenshots, scene state, asset descriptors, and working memory. 7. Apply narrowly scoped, revocable API keys and provide key rotation and usage-monitoring controls. 8. Avoid logging authorization headers, complete request bodies, or sensitive working-memory objects.

T08 · Insecure Dependencies

Warning
Location
README.md:30
Finding
Unpinned npm Package Is Automatically Retrieved and Executed## Vulnerability Details **File Location**: `README.md`, lines 30–44, 57–59, and 435 **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```markdown The portable interface is the **[`levea-mcp-server`](https://www.npmjs.com/package/levea-mcp-server)** MCP server — one server, every MCP client (Claude Desktop, Claude Code, Cursor, Cline, OpenClaw, Hermes), one tool surface, one backend contract, so nothing drifts per platform. **1. Get an API key** — sign up at **[studio.livecore.ai](https://studio.livecore.ai)** and generate an OpenClaw API key. **2. Add the MCP server** — the same `npx` line works for every MCP client: ```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" } } } } ``` ``` ```markdown | Claude Desktop / Cursor / Cline | Add the `levea` block above to `mcpServers` — see the [`levea-mcp-server`](https://www.npmjs.com/package/levea-mcp-server) docs | | Claude Code | `claude mcp add levea -e LEVEA_API_URL=https://api.livecore.ai -e LEVEA_API_KEY=... -- npx -y levea-mcp-server` | | OpenClaw | This ClawHub listing (chat-native) **or** `openclaw mcp add levea --command "npx -y levea-mcp-server" --env LEVEA_API_URL=https://api.livecore.ai --env LEVEA_API_KEY=...` | ``` ```markdown > 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 documented setup uses `npx -y levea-mcp-server` without an exact package version or verified integrity value. The `-y` option suppresses the installation confirmation, and omission of a version causes npm to resolve the currentl ...[truncated 2143 chars]
Remediation
## Remediation Suggestions 1. Pin the package to a reviewed exact version, for example `levea-mcp-server@X.Y.Z`, rather than resolving the latest release. 2. Record and verify package integrity metadata or publish a lockfile-supported installation method. 3. Remove language encouraging users to always execute the latest version without review. 4. Establish a controlled upgrade process that reviews release diffs, dependencies, provenance, and security test results before changing the pinned version. 5. Enable npm package provenance and use protected publishing credentials with multi-factor authentication. 6. Run the MCP server in a sandbox or container with minimal filesystem access, restricted environment variables, and limited outbound networking. 7. Supply a narrowly scoped API key only to the process that needs it, and rotate the key following any suspected package compromise. 8. Consider distributing a signed, reproducible artifact whose source and checksum can be independently verified.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (7)

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The README instructs users to run `npx -y levea-mcp-server` without pinning an exact package version. That means every installation or reinstallation may fetch newly published code, so a compromised maintainer account, typosquat, or malicious upstream release could execute attacker-controlled code on client machines with the user's MCP permissions and API secrets.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
This line repeats the unpinned `npx -y levea-mcp-server` install pattern, which delegates trust to the current contents of the npm registry at execution time. In an agent/tooling context, that creates a supply-chain execution path where hostile or compromised package updates can be pulled automatically and then gain access to configured environment variables such as `LEVEA_API_KEY`.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
The natural-language text states caption typography is limited to 'English / Latin-ASCII', which imposes a language/script restriction. Under the policy, forcing a specific language or locale without user opt-in can be a violation, and this README does not offer an alternative or opt-in path for users needing other scripts.

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
99% confidence
Finding
The README explicitly says versions are not pinned and that users should always pull the latest package. This materially increases supply-chain risk because any future malicious or vulnerable release becomes immediately executable by users following the instructions, especially dangerous for an MCP server that may process local content and API credentials.

External Transmission

Medium
Category
Data Exfiltration
Content
- ADSCENE_API_URL
        - ADSCENE_API_KEY
      bins:
        - curl
        - jq
    primaryEnv: ADSCENE_API_KEY
    envVars:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

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
86% confidence
Finding
The example command transmits prompts, project identifiers, and potentially user media-derived workflow data to an external third-party endpoint using a bearer API key. In an agent skill context, this is security-relevant because user content may be sensitive and the skill encourages autonomous remote processing and auto-export behavior, increasing the chance of unintended disclosure or external persistence.

Static analysis

No suspicious patterns detected.