T08 · Insecure Dependencies
- Location
SKILL.md:16- Finding
Unpinned Third-Party Packages Are Installed and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 16–23
Vulnerability Type: Unpinned and automatically executed third-party dependencies
Risk Level: MediumCode Snippet:
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 skill instructs users or agents to install
@wavespeed/cliglobally and to download and execute@wavespeed/mcpthroughnpx -y. Neither dependency is pinned to a reviewed version or verified with an integrity hash.Package installation can execute npm lifecycle scripts, while
npx -yautomatically resolves, downloads, and runs the package without an interactive confirmation. The code executed by these commands can therefore change after the skill has been audited. A compromised publisher account, malicious package release, or transitive dependency compromise could introduce attacker-controlled code.The global installation also creates a persistent command in the user's environment. Although no malicious persistence mechanism is present in the reviewed skill itself, the installation increases the consequences of a supply-chain compromise because the resulting executable may remain available after the skill run.
Attack Path
- An attacker compromises the publisher account, package release process, or dependency chain for
@wavespeed/clior@wavespeed/mcp. - The attacker publishes a malicious version under the same package name.
- A user or agent follows the documented setup and runs the unversioned `npm ...[truncated 1207 chars]
- An attacker compromises the publisher account, package release process, or dependency chain for
- Remediation
View remediation
Remediation Suggestions
- Pin each package to an exact, reviewed version rather than resolving the latest available release:
bash npm install --global @wavespeed/cli@<reviewed-version> npx --yes @wavespeed/mcp@<reviewed-version> - Prefer a project-local installation governed by a committed lockfile over global installation.
- Use npm integrity verification, trusted provenance, and package-signing controls where available.
- Review package contents and lifecycle scripts before approving a version for use.
- Avoid automatic
npx -yexecution. Install the reviewed dependency explicitly and invoke its local binary. - Run the tools in a restricted environment with only the files and environment variables required for the video-generation task.
- Establish a controlled dependency-update process that repeats security review before changing pinned versions.
- Document the expected publisher, repository, package version, and checksum so users can verify that they obtained the approved artifact.
- Pin each package to an exact, reviewed version rather than resolving the latest available release:
