Back to skill

Security audit

WaveSpeedAI Ultimate Video Upscaler

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent WaveSpeed video upscaling integration, with disclosed costs, uploads, authentication, and setup risks.

Install only if you trust WaveSpeed's npm packages and are comfortable with the CLI storing authentication locally. Prefer pinning reviewed package versions, running the tools with least privilege, checking price before processing long videos, and uploading only media you intend to send to WaveSpeed.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:18
Finding
Unpinned Third-Party npm Package Installation and Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 18–25 **Vulnerability Type**: Unpinned and automatically executed third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash npm install -g @wavespeed/cli wavespeed login # opens https://wavespeed.ai/accesskey and stores the key wavespeed status # confirms you are signed in ``` ```text Prefer MCP tools over shell commands? The same platform is exposed by [`@wavespeed/mcp`](https://github.com/WaveSpeedAI/mcp-server) (`npx -y @wavespeed/mcp`; tools `search_models`, `get_model_schema`, `get_price`, `upload_file`, `run_model`, `get_prediction`). ``` ### Technical Analysis The instructions install `@wavespeed/cli` globally without specifying an audited version. They also use `npx -y @wavespeed/mcp`, which resolves, downloads, and executes the currently published package while automatically accepting installation. Neither command provides a version constraint, lockfile, or integrity hash. Consequently, the code executed at installation or runtime may differ from the code that was reviewed. npm packages can execute lifecycle scripts during installation and arbitrary logic at runtime. A compromised publisher account, malicious package release, or compromised transitive dependency could therefore introduce attacker-controlled code. The global installation increases exposure by placing package files and executables in the user's npm global prefix. The MCP command introduces additional risk because `npx -y` downloads and executes the mutable package without an interactive approval step. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, or a transitive dependency used by `@wavespeed/cli` or `@wavespeed/mcp`. 2. The attacker publishes a malicious package version containing an installation lifecycle script or malicious runtime code. 3. A user or agent follows the documented setup instructi ...[truncated 1325 chars]
Remediation
## Remediation Suggestions 1. Pin each package to a specific version that has been reviewed, for example: ```bash npm install --global @wavespeed/cli@<reviewed-version> npx @wavespeed/mcp@<reviewed-version> ``` 2. Avoid `npx -y` because it suppresses the installation confirmation. Prefer installing an audited version in a controlled project environment and invoking its local executable. 3. Avoid global installation where possible. Use a project-local dependency with a committed lockfile to constrain the package and its transitive dependency versions. 4. Verify package provenance, publisher identity, release signatures or attestations, and npm integrity metadata before installation. 5. Use `npm ci` with a committed lockfile in automated environments rather than resolving current package versions dynamically. 6. Run third-party tooling with least privilege in an isolated container or restricted account. Expose only the files and credentials needed for the requested operation. 7. Disable npm lifecycle scripts during installation where compatible by using `--ignore-scripts`, and separately review any scripts required for legitimate operation. 8. Document an approved package version and a controlled update process that requires security review before changing it.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Setup

Install the open-source CLI once and sign in; the CLI stores the key, so never ask the user to paste an API key into the chat:

```bash
npm install -g @wavespeed/cli
Confidence
80% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The skill instructs users to execute `npx -y @wavespeed/mcp` without pinning an exact version, which creates a supply-chain risk: a future compromised or malicious package release would be executed automatically. Because this is an agent skill that encourages direct tool installation/execution, the context increases the danger compared to ordinary documentation.

Static analysis

No suspicious patterns detected.