T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 13
Vulnerability Type: Unpinned executable dependency and supply-chain exposure
Risk Level: MediumVulnerable Code:
bash npm install -g exponential-cliTechnical Analysis
The prerequisite installs the latest available version of
exponential-cliglobally without an exact version pin, lockfile, integrity hash, or documented publisher verification. npm installations may execute package lifecycle scripts with the privileges of the invoking user. Because the resolved package version is mutable, the code ultimately installed may differ from the version originally reviewed.Global installation also increases scope by modifying the user's global Node.js environment and exposing the installed executable system-wide for that user. The project does not contain the package source or other controls that would make the installed artifact reproducible.
No evidence establishes that the current package is malicious. The vulnerability is the unsafe dependency acquisition practice and resulting exposure to a future package compromise, malicious release, dependency confusion event, or account takeover.
Attack Path
- An attacker compromises the npm publisher account, package, or one of its transitive dependencies and publishes a malicious release.
- A user or agent follows the documented prerequisite after that release becomes the version selected by npm.
- npm downloads the mutable latest package version and its dependencies.
- Malicious package code or lifecycle scripts execute with the invoking user's privileges during installation.
- The globally installed executable can subsequently run attacker-controlled logic whenever the documented CLI is invoked.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user performing the installation. This may permit access to that user's files, environme ...[truncated 325 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin an audited exact package version instead of resolving the latest release, for example
exponential-cli@X.Y.Z. - Verify and document the official package name, publisher, repository, and expected artifact integrity before installation.
- Prefer a project-local dependency with a committed lockfile rather than a global installation.
- Use npm integrity and provenance verification where available.
- Review transitive dependencies and package lifecycle scripts before approving upgrades.
- Consider disabling lifecycle scripts with
--ignore-scriptswhen compatible with the package. - Execute installation as an unprivileged user and approve version upgrades only after security review.
- Pin an audited exact package version instead of resolving the latest release, for example
