T08 · Insecure Dependencies
- Location
SKILL.md:18- Finding
Unpinned Third-Party CLI and MCP Package Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 18-19 and 26
Vulnerability Type: Unpinned third-party dependency installation and execution
Risk Level: MediumThe skill instructs users to install or directly execute third-party npm packages without specifying reviewed versions or verifying package integrity.
bash npm install -g @wavespeed/cli wavespeed loginbash npx -y @wavespeed/mcpTechnical Analysis
The commands resolve the packages using mutable npm registry metadata. The global installation of
@wavespeed/clidoes not specify a version, whilenpx -y @wavespeed/mcpautomatically downloads and executes the resolved package without an interactive confirmation.Consequently, the code executed by users can differ from the code that was available when the skill was reviewed. If the package publisher account, npm package, release process, or another component of the distribution channel is compromised, a malicious release could execute through npm lifecycle hooks or during normal CLI operation.
The exposure is particularly relevant because the documented CLI stores and uses a WaveSpeed API credential, communicates with an external service, and can upload user-selected local files. There is no evidence in the audited project that either named package is currently malicious; the finding concerns the unsafe, unpinned dependency execution mechanism.
Attack Path
- An attacker compromises the npm package, its publisher account, or its release pipeline.
- The attacker publishes a malicious package version under the expected package name.
- A user follows the skill instructions and runs the unversioned
npm install -gor automaticnpx -ycommand. - npm resolves the attacker-controlled release because no reviewed version or integrity constraint is specified.
- Malicious code executes with the permissions of the user running npm, either through installation hooks or pa ...[truncated 611 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each package to an explicitly reviewed version, for example
@wavespeed/cli@<reviewed-version>and@wavespeed/mcp@<reviewed-version>. - Avoid automatic execution with
npx -y; install a reviewed version through a controlled dependency workflow before invoking it. - Use a lockfile and npm integrity metadata where the installation model permits it.
- Verify package provenance, publisher identity, release signatures, and checksums before recommending an update.
- Evaluate installation with lifecycle scripts disabled, such as
npm install --ignore-scripts, when compatible with the package. - Run the tools as a non-privileged user and never install them with
sudoor an administrative account. - Store credentials with restrictive filesystem permissions and use narrowly scoped, revocable API credentials where supported.
- Review new package versions before changing the pinned version, rather than automatically tracking the latest release.
- Pin each package to an explicitly reviewed version, for example
