T08 · Insecure Dependencies
- Location
SKILL.md:16- Finding
Unpinned Third-Party Packages Are Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 16–24
Vulnerability Type: Supply-chain exposure through unpinned npm dependencies
Risk Level: MediumVulnerable Code
bash npm install -g @wavespeed/cli wavespeed login # opens https://wavespeed.ai/accesskey and stores the key wavespeed status # confirms you are signed inmarkdown 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 setup instructions install
@wavespeed/cliglobally without an exact version and execute@wavespeed/mcpthroughnpx -ywithout a version or integrity pin. Consequently, the package content executed by users can change after this Skill has been reviewed.npm installation can execute package lifecycle scripts, while
npx -ycan automatically download and run the currently resolved registry version without an interactive confirmation. The repository contains no pinned dependency manifest, lockfile, integrity hash, or vendored implementation that would make the executed code reproducible or auditable.This is a supply-chain weakness rather than evidence that the current WaveSpeed packages are malicious. Exploitation requires compromise of the relevant package, publisher account, registry resolution, or a future package release.
Attack Path
- An attacker compromises the npm publisher account, package distribution channel, or a future release of one of the referenced packages.
- The attacker publishes a modified package containing malicious lifecycle or runtime code.
- A user follows
SKILL.mdand runs either the unpinned global installation ornpx -y @wavespeed/mcp. - npm resolves the attacker-controlled r ...[truncated 1012 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each dependency to an exact, reviewed version, for example
@wavespeed/cli@X.Y.Zand@wavespeed/mcp@X.Y.Z. - Replace
npx -yexecution with a project-local, version-pinned installation controlled by a committed lockfile. - Verify package provenance, signatures, publisher identity, and npm integrity metadata before approving upgrades.
- Prefer a reproducible installation process such as
npm ciwith a committed lockfile rather than resolving the latest package at execution time. - Avoid global installation where practical and execute the dependency under a dedicated, least-privileged user or isolated environment.
- Review lifecycle scripts and package contents before upgrades. Disable installation scripts when compatible with the package's documented operation.
- Document an explicit dependency-update review process so version changes trigger a new security audit.
- Restrict the runtime's access to unrelated files and environment variables, and protect stored API credentials with narrowly scoped permissions and regular rotation.
- Pin each dependency to an exact, reviewed version, for example
