T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 14
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
bash npm install -g @ojschwa/ttt-cliTechnical Analysis
The installation instructions retrieve the current published version of
@ojschwa/ttt-clifrom the npm registry without specifying an exact version or verifying an integrity hash. The project contains no lockfile or vendored source that would establish which package contents were reviewed.npm packages can execute lifecycle scripts during installation. Because the command also installs the package globally, package-controlled code may execute with the installing user's privileges and place executable files in a global binary location. The effective package contents can change after this skill has been reviewed, creating a supply-chain risk if the publisher account, package, registry delivery path, or a future release is compromised.
This finding does not establish that the named package is malicious. It identifies an unsafe, mutable dependency-installation process whose retrieved implementation is outside the audited project.
Attack Path
- An attacker compromises the package publisher account, package release process, or another relevant npm supply-chain component.
- The attacker publishes a malicious release under the existing package name.
- A user follows the documented unversioned installation command.
- npm resolves the mutable package reference to the malicious release.
- Malicious package lifecycle scripts may execute during installation, or the globally installed
tttexecutable may execute malicious logic when subsequently invoked. - The code operates with the installing user's privileges and can access resources available to that user.
Impact Assessment
Successful exploitation could permit arbitrary code execution under the installing user's account. Depending on t ...[truncated 509 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed exact version, for example:
bash npm install -g @ojschwa/ttt-cli@X.Y.Z - Document and verify the expected package provenance and integrity digest before installation.
- Prefer a project-local installation governed by a committed lockfile rather than a global installation.
- Review the resolved package, transitive dependencies, and lifecycle scripts before recommending them.
- Disable lifecycle scripts during installation with
--ignore-scriptswhen they are not required. If scripts are required, document why and audit their contents. - Use npm provenance and signature verification controls where supported, and establish a controlled process for reviewing dependency upgrades.
- Run the CLI with least privilege and avoid installing it from an elevated shell.
- Pin the dependency to a reviewed exact version, for example:
