Back to skill

Security audit

WaveSpeedAI Seedream 4.5 Image Generation/Editing

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent WaveSpeed image-generation skill with disclosed authentication and upload behavior, though users should treat its unpinned npm setup commands cautiously.

Install only if you trust WaveSpeed’s npm packages and account handling. Prefer pinned package versions or a locked project install over npx -y, avoid running npm with elevated privileges, keep WAVESPEED_API_KEY scoped and revocable, and only upload images 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:17
Finding
Unpinned Third-Party npm Packages Are Installed and Executed## Vulnerability Details **File Location**: `SKILL.md`, lines 17-24 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium ### Vulnerable Code ```markdown 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 wavespeed login # opens https://wavespeed.ai/accesskey and stores the key wavespeed status # confirms you are signed in ``` For CI or one-off shells, `WAVESPEED_API_KEY` in the environment also works. 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 skill instructs users to install `@wavespeed/cli` globally and to download and execute `@wavespeed/mcp` through `npx -y`. Neither command specifies an exact reviewed package version. Consequently, npm resolves the package version available at execution time rather than a version whose source and integrity were established during review. The `npx -y` option is particularly sensitive because it suppresses installation confirmation and immediately executes downloaded package code. The global installation command may also run npm lifecycle scripts under the invoking user's permissions. The project provides no lockfile, package integrity hash, vendored source, or other mechanism for verifying the effective code. This is a supply-chain exposure. The audit found no evidence that the named packages are currently malicious; exploitation depends on a future or existing compromise of a package, transitive dependency, maintainer account, or package-resolution infrastructure. ### Attack Path 1. An attacker compromises `@wavespeed/cli`, `@wavespeed/mcp`, one of their transitive ...[truncated 1384 chars]
Remediation
## Remediation Suggestions 1. Pin each package to an exact reviewed version, for example: ```bash npm install -g @wavespeed/cli@<reviewed-version> npx --no-install @wavespeed/mcp ``` 2. Install the MCP package as a project dependency from a lockfile instead of allowing `npx -y` to download and execute the current registry version automatically. 3. Commit a lockfile with npm integrity metadata and require reproducible installation using `npm ci`. 4. Document the expected package version and integrity hash, and verify release provenance before updating it. 5. Review direct and transitive dependency changes whenever the pinned version is upgraded. 6. Avoid running npm installation commands with administrator or root privileges. 7. Execute third-party tooling in a restricted environment with access only to the files and credentials required for the requested operation. 8. Keep API credentials scoped and revocable, and avoid exposing unrelated sensitive environment variables to the CLI or MCP process.
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
93% confidence
Finding
The skill instructs use of `npx -y @wavespeed/mcp` without pinning a specific version, which causes the latest package version to be fetched and executed at runtime. That creates a supply-chain risk: a compromised publisher account, malicious update, or dependency hijack could lead to arbitrary code execution in the agent environment.

Static analysis

No suspicious patterns detected.