T08 · Insecure Dependencies
- Location
SKILL.md:28- Finding
Unpinned Global Installation of a Third-Party npm CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10-15 and 28-31
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumThe Skill declares and recommends installation of the
clawhubnpm package without specifying an exact version or integrity constraint.yaml "install": [ { "id": "node", "kind": "node", "package": "clawhub", "bins": ["clawhub"], "label": "Install ClawHub CLI (npm)", }, ],bash npm i -g clawhubTechnical Analysis
Both installation definitions resolve the package by its mutable npm package name rather than by a reviewed, immutable version. The explicit command also installs it globally. Consequently, the code installed at different times can change independently of this Skill's reviewed contents.
npm packages may execute lifecycle scripts during installation. If the package, one of its transitive dependencies, or its publishing account is compromised, following this instruction could execute attacker-controlled code with the permissions of the user running npm. The external package and its dependency graph are not included in this project, so their implementation cannot be verified through this audit.
Global installation also places an executable in a shared command location. This increases the effect of a compromised release because subsequent
clawhubcommands may invoke attacker-controlled behavior outside the immediate installation step.Attack Path
- An attacker compromises the npm package publisher, package distribution process, or a transitive dependency.
- The attacker publishes a malicious version that remains resolvable under the unpinned
clawhubpackage name. - A user follows the Skill instructions and executes
npm i -g clawhub, or the framework processes the equivalent metadata installation declaration. - npm downloads the malicious release and may ...[truncated 1045 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to an exact reviewed version in both metadata and documentation, for example
clawhub@X.Y.Z. - Keep the metadata package specification and documented installation command synchronized.
- Record and verify package integrity information where the installation framework supports it.
- Prefer a project-local installation governed by a committed lockfile instead of a global installation.
- Document the authoritative npm package URL, publisher identity, and release-verification process to reduce dependency-confusion and package-spoofing risks.
- Review the selected package version, its transitive dependencies, and npm lifecycle scripts before approval.
- Disable lifecycle scripts during installation when they are not required, or explicitly document and audit any scripts that must run.
- Execute the CLI using a dedicated least-privileged account and avoid elevated installation.
- Regularly reassess pinned versions and apply upgrades only after security review rather than automatically resolving the latest release.
- Pin the CLI to an exact reviewed version in both metadata and documentation, for example
