T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Third-Party Package Installation and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 22-30
Vulnerability Type: Supply-chain exposure caused by unpinned npm packages
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 intext npx -y @wavespeed/mcpTechnical Analysis
The setup instructions install
@wavespeed/cliglobally and execute@wavespeed/mcpwithout specifying reviewed, exact package versions or verifying package integrity. In particular,npx -yautomatically resolves, downloads, and executes the package selected by the npm registry without presenting an installation confirmation.Because the effective package contents can change after this Skill has been reviewed, compromise of the package publisher, npm registry account, or a transitive dependency could cause attacker-controlled JavaScript, lifecycle scripts, or executable entry points to run with the invoking user's permissions. Global installation also expands the package's presence beyond an isolated project environment.
No evidence establishes that the named packages are currently malicious. The vulnerability is the unsafe and mutable dependency acquisition process prescribed by the Skill.
Attack Path
- An attacker compromises the publisher account, package release process, or a transitive dependency associated with one of the referenced npm packages.
- The attacker publishes a malicious version under the legitimate package name.
- A user follows the Skill instructions and runs
npm install -g @wavespeed/cliornpx -y @wavespeed/mcp. - npm resolves the unpinned dependency to the attacker-controlled release.
- Package lifecycle scripts or executable entry points run locally with the user's privileges.
- The malicious code may inspect accessible files and environment variable ...[truncated 690 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each package to a reviewed exact version, such as
@wavespeed/cli@X.Y.Zand@wavespeed/mcp@X.Y.Z, rather than resolving the latest available release. - Replace
npx -ywith execution of a locally installed, version-pinned dependency. - Use a project-local installation instead of a global installation wherever practical, and commit a lockfile containing integrity hashes.
- Verify package provenance, signatures, integrity metadata, publisher identity, and release history before installation.
- Run dependency installation and model processing in a least-privileged, isolated environment with access limited to the media required for the current task.
- Disable npm lifecycle scripts during installation where compatible, then explicitly review any scripts that must be enabled.
- Establish a controlled dependency-update process that reviews and tests new versions before changing the pinned version.
- Pin each package to a reviewed exact version, such as
