T08 · Insecure Dependencies
- Location
SKILL.md:9- Finding
Unpinned Third-Party CLI Is Installed Globally
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:9-13andSKILL.md:52-56
Vulnerability Type: Unpinned global dependency installation
Risk Level: MediumThe skill declares and recommends installing the mutable latest release of a third-party npm package globally:
yaml metadata: openclaw: requires: bins: - sx install: - kind: node package: "@sprint-x/cli" bins: - sxThe operator-facing installation instructions similarly omit an exact version:
bash npm install -g @sprint-x/cli sx --helpTechnical Analysis
The package reference does not specify an exact reviewed version or integrity value. Consequently,
npm install -g @sprint-x/cliresolves whichever release the npm registry serves under the package's current default distribution tag at installation time.This makes the effective installed code mutable after the skill has been reviewed. The external CLI source and its npm lifecycle scripts are not included in this repository, so they cannot be verified by this audit. If the package, publisher account, release process, or registry resolution is compromised, npm could install and execute code different from the version originally assessed.
Global npm installation also places the resulting executable in a shared command location. Package lifecycle scripts, when present and enabled, execute during installation with the permissions of the user running npm.
Attack Path
- An attacker compromises the
@sprint-x/clipackage, a maintainer or publisher account, or its release pipeline. - The attacker publishes a malicious release and assigns it to the registry tag resolved by an unversioned installation.
- An operator follows the skill's documented command:
bash npm install -g @sprint-x/cli - npm downloads the attacker-controlled release rather than a previously reviewed version.
- M ...[truncated 1100 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
-
Pin
@sprint-x/clito an exact reviewed version in both the skill metadata and installation command:bash npm install -g @sprint-x/cli@0.1.3Replace the example version with the actual independently reviewed CLI release.
-
Keep the metadata and operator instructions synchronized so automated installation cannot silently resolve a different release from the documented command.
-
Document package provenance, the expected npm scope owner, and a procedure for verifying the package tarball and integrity digest before installation.
-
Prefer a lockfile-backed local installation where the runtime supports it. This allows npm integrity metadata and dependency versions to be reviewed and reproduced.
-
Consider disabling npm lifecycle scripts during installation with
--ignore-scriptsif the CLI does not legitimately require them. Test this configuration before recommending it. -
Avoid privileged installation. Explicitly instruct operators not to run the installation through
sudoor an administrative account. -
Establish a release-review process that verifies the pinned CLI package, its transitive dependencies, lifecycle scripts, and published provenance before updating the version referenced by the skill.
-
