T08 · Insecure Dependencies
- Location
SKILL.md:18- Finding
Unpinned Third-Party npm Packages Are Installed and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 18 and 25
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
bash npm install -g @wavespeed/clitext 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`). It shares the CLI's stored login.Technical Analysis
The Skill directs users to install
@wavespeed/cliglobally and to download and immediately execute@wavespeed/mcpthroughnpx -y. Neither dependency is pinned to a reviewed version, and no package integrity or provenance verification is required.The global npm installation may run package lifecycle scripts and place executables in a shared user or system location. The
npx -ycommand is particularly sensitive because it automatically accepts installation and executes the resolved package without an intermediate review step. The effective code executed by these instructions can therefore change after the Skill itself has been audited.This is a supply-chain exposure rather than evidence that the current packages are malicious. Exploitation would require compromise of the relevant npm package, publisher account, release process, or dependency chain.
Attack Path
- An attacker compromises the npm publisher account, package release process, or an executed transitive dependency.
- The attacker publishes a malicious version that is selected by npm because the Skill does not specify a fixed version.
- A user or Agent follows the installation instructions and runs
npm install -g @wavespeed/cliornpx -y @wavespeed/mcp. - npm retrieves the malicious release and executes its lifecycle or runtime code with the privileges of the invoking user.
- The payload can access resource ...[truncated 1057 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin both packages to explicitly reviewed versions, such as:
bash npm install @wavespeed/cli@<reviewed-version> npx --no-install @wavespeed/mcp@<reviewed-version> - Prefer a project-local installation over a global installation so the dependency is represented in
package.jsonand a lockfile. - Commit and enforce a lockfile with integrity hashes, using a deterministic installation command such as
npm ci. - Avoid
npx -y, which automatically downloads and executes unresolved packages. Install a reviewed version first and run its local binary. - Verify npm publisher identity, package provenance, registry source, and signatures or attestations where available.
- Review package lifecycle scripts and transitive dependencies before approving upgrades.
- Run the CLI or MCP server in a restricted environment with minimum filesystem, network, and credential access.
- Require explicit approval and security review before changing pinned dependency versions.
- Pin both packages to explicitly reviewed versions, such as:
