T08 · Insecure Dependencies
- Location
SKILL.md:18- Finding
Unpinned Global Installation of a Third-Party CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 18
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code:
bash npm install -g @paperpod/cliA related unsafe update instruction appears at
SKILL.md, line 83:bash npm update -g @paperpod/cliTechnical Analysis
The installation command does not pin
@paperpod/clito a reviewed version or verify its integrity. It therefore installs whichever package version the npm registry resolves at execution time. The update instruction similarly permits future, unaudited package content to replace the installed CLI.npm packages can define lifecycle scripts that execute during installation with the permissions of the invoking user. Consequently, compromise of the package, its publisher account, or its distribution channel could convert this documented installation step into arbitrary local code execution. Global installation increases exposure because it modifies the user's shared npm environment and makes the CLI available system-wide within that user's installation scope.
The audited project does not itself contain a malicious payload, and no compromise of the named package was established. The issue is the mutable and unverified dependency acquisition process.
Attack Path
- An attacker compromises the npm package, its publisher account, or another relevant supply-chain component.
- The attacker publishes a malicious release under the expected package name.
- A user follows the documented
npm install -g @paperpod/cliornpm update -g @paperpod/cliinstruction. - npm resolves and downloads the attacker-controlled release because no reviewed version or integrity value is specified.
- Malicious package code or lifecycle scripts execute locally with the invoking user's permissions.
- The attacker can access or modify resources available to that user and can alter the globally installed CLI.
Impact Assessment
Successful exploi ...[truncated 482 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a specific, reviewed version, for example:
bash npm install -g @paperpod/cli@2.0.3 - Verify the selected release and document its expected registry source and integrity digest.
- Avoid instructing users to run an unrestricted
npm update -g; instead, specify an explicitly reviewed target version. - Prefer a project-local dependency with a committed lockfile over a global installation where operationally feasible.
- Publish and verify signed release artifacts or package provenance.
- Review required npm lifecycle scripts and use
--ignore-scriptswhen installation scripts are unnecessary. - Document a controlled upgrade process that requires security review before changing the pinned version.
- Pin the CLI to a specific, reviewed version, for example:
