Back to skill

Security audit

Wavespeed

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its media-generation purpose, but it gives risky authentication and installation guidance that could expose a user's WaveSpeed API key or run unreviewed package code.

Review before installing. Use this skill only if you are comfortable sending selected media files to WaveSpeed and paying for model runs. Avoid pasting API keys into chat or putting them on command lines; prefer browser login or a secure credential flow. Install a reviewed, pinned CLI version without sudo where possible, and confirm each file upload explicitly.

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 (3)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:124
Finding

Unpinned Third-Party CLI Installation and Execution

Content
View full analysis
# drop-in, no install needed ``` ```text The npm package name is **`@wavespeed/cli`**, not `wavespeed`. If global install fails due to permissions, `npx @wavespeed/cli` works identically as a drop-in replacement for all subcommands (just prefix every call with `npx @wavespeed/cli` instead of `wavespeed`). ``` ### Technical Analysis The Skill directs the Agent to install or immediately execute `@wavespeed/cli` without specifying a reviewed version, integrity hash, lockfile, or other verification mechanism. Consequently, npm resolves the package version from the live registry at execution time. The `npx` workflow is especially sensitive because it may download and immediately run package code. A global npm installation can also execute installation lifecycle scripts and makes the package available outside the current project. The comment that global installation may require `sudo` could encourage execution with elevated privileges, although the Skill does not explicitly direct the Agent to use `sudo`. This creates a supply-chain trust boundary in which behavior can change after the Skill has been audited. ### Attack Path 1. An attacker compromises the upstream npm package, a maintainer account, or a subsequently published package version. 2. The attacker publishes malicious CLI code or an installation lifecycle script under the expected package name. 3. The Agent follows the Skill and invokes `npx @wavespeed/cli` or installs the unpinned package globally. 4. npm retrieves the compromised version and executes it with the current user's permissions. 5. The malicious package accesses local data, environment variables, authentication material, or performs ...[truncated 504 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:143
Finding

API Key Exposure Through Chat and Command-Line Arguments

Content
View full analysis
Remediation
View remediation

other

Warning
Location
SKILL.md:90
Finding

External Upload of Local Media Without Explicit Upload-Specific Consent

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (8)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest says to use the skill whenever the user asks to create, edit, animate, upscale, or transform a visual asset, generate audio/TTS/music, or produce marketing creatives. This activation scope is very broad and overlaps with ordinary user requests, without clear constraints or negative examples to distinguish when this skill should or should not activate.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The documentation instructs the agent to upload local files to a remote service and download outputs to local disk, but it does not warn that these actions transfer user data off-device and write files locally. In a media skill, this context makes the omission meaningful because users may provide private images/audio and may not realize they are being sent to a third-party CDN/API or saved on disk.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
87% confidence
Finding

The installation instructions mention global npm install that 'may need sudo', which can normalize running package installation with elevated privileges. Combined with a third-party CLI and its dependency tree, that increases the blast radius of any malicious or compromised package from user-level execution to full system compromise.

Content

Scanner excerpt · SKILL.md (reported line 125)May include surrounding context.

Installation

bash
npm install -g @wavespeed/cli    # global install (may need sudo/nvm)
npx @wavespeed/cli <cmd>         # drop-in, no install needed

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

Using npx @wavespeed/cli without pinning a specific package version causes execution of whatever version is current in the npm registry at runtime. That creates a supply-chain risk: a compromised maintainer account, malicious new release, or dependency hijack could result in arbitrary code execution on the user's machine when the skill follows the documented command.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

Although this appears duplicate, the referenced text still documents an unpinned executable package fetch via npx, which is a real supply-chain weakness. The danger is amplified because the skill encourages this as an interchangeable fallback path, making insecure execution more likely in practice.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly instructs that if a user pastes an API key into chat, the agent should pass it on the command line with --api-key. This expands the skill from media generation into credential handling and creates a serious secret-exposure risk because chat logs, shell history, process listings, telemetry, and tool traces may retain the key.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The authentication section omits any warning that API keys are sensitive secrets and instead normalizes handling them in chat and on the command line. In this context that is dangerous because the skill is for local-agent execution, where secrets can leak into conversation history, shell history, process arguments, logs, and screenshots.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding

The login example uses unpinned npx, meaning even the authentication path may execute freshly downloaded code from the registry. That is particularly risky because the command handles API-key setup; a compromised package could capture credentials or alter auth behavior.

Content

No source excerpt is available for this finding.