T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Global npm Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14-18
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable Code
bash ## Install npm i -g @getjack/jack jack loginThe package is also declared without a version constraint in the Skill metadata:
yaml metadata: {"clawdbot":{"emoji":"🃏","homepage":"https://github.com/getjack-org/skills","requires":{"bins":["node","npm"],"env":[]},"install":[{"id":"npm","kind":"npm","package":"@getjack/jack","bins":["jack"],"label":"Install Jack CLI (npm)"}]}}Technical Analysis
The Skill instructs users or agents to install the latest available version of
@getjack/jackglobally. No exact version, lockfile, integrity hash, or provenance-verification mechanism is specified.npm packages and their transitive dependencies can execute lifecycle scripts during installation. Consequently, compromise of the package publisher, npm account, published package, or dependency chain could cause attacker-controlled code to execute with the permissions of the user running the installation. Because the installation is global, it can also create or replace executables in the user's global npm binary path.
This finding identifies an unsafe dependency-installation pattern; the audited files contain no evidence that the named package is currently malicious.
Attack Path
- An attacker compromises the package publisher, npm account, release process, or a transitive dependency.
- The attacker publishes a malicious version that becomes the version selected by the unpinned installation command.
- A user or agent follows the Skill instructions and runs
npm i -g @getjack/jack. - npm downloads the compromised package and may execute its lifecycle scripts.
- The malicious code runs with the invoking user's privileges and may install or replace a globally accessible executable.
- Subsequent invocations ...[truncated 624 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a reviewed exact version, for example
@getjack/jack@X.Y.Z, rather than installing the latest release implicitly. - Prefer a project-local dependency governed by a committed lockfile instead of a global installation.
- Use deterministic installation methods such as
npm ciwhere applicable. - Verify package provenance, publisher identity, signatures or attestations, and registry integrity metadata before installation.
- Review package and transitive-dependency lifecycle scripts before approving upgrades.
- Run installation in an isolated, non-privileged environment and explicitly warn users not to execute it with administrator or root privileges.
- Use automated dependency scanning and a controlled upgrade process for future versions.
- Pin the CLI to a reviewed exact version, for example
