T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned Global Installation of a Third-Party CLI Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 17-28; duplicated inREADME.md, lines 47-57
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable Code Snippet:
markdown If the `syft` command is missing or `syft status` fails because the CLI is not installed, pause the workflow and tell the user to install the official Syft CLI first: ```bash npm install -g @orionarm/syft-cliAfter installation, ask the user to run:
bash syft login syft statustext ### Technical Analysis The Skill directs users to install the latest available version of `@orionarm/syft-cli` globally without specifying a reviewed version, lockfile, package integrity hash, or provenance-verification procedure. An npm installation may execute package lifecycle scripts such as `preinstall`, `install`, or `postinstall`. Because the package is installed globally, those scripts execute with the privileges of the user running npm and may modify globally accessible binaries or files. The effective code installed can also change after this Skill package has been audited. The Skill describes the package as official, but the audited repository does not include the CLI source, a package signature, an integrity digest, or other evidence that independently establishes the downloaded artifact's identity. This does not demonstrate that the current package is malicious, but it creates a supply-chain trust boundary that is not controlled by the audited project. ### Attack Path 1. An attacker compromises the npm publisher account, package repository, build pipeline, or a future package release. 2. The attacker publishes a malicious version under the expected package name. 3. A user follows the Skill's unpinned `npm install -g` instruction. 4. npm downloads the attacker-controlled latest version and may execute its lifecycle scripts. 5. The installed binary is subseque ...[truncated 948 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to an explicitly reviewed version rather than installing the moving latest release:
bash npm install -g @orionarm/syft-cli@REVIEWED_VERSION - Publish and verify the expected npm integrity digest or cryptographic signature before installation.
- Document the authoritative package registry, publisher identity, source repository, and release-verification process.
- Disable lifecycle scripts during installation where compatible with the package:
bash npm install -g --ignore-scripts @orionarm/syft-cli@REVIEWED_VERSION - Prefer a project-local, isolated installation or sandbox over a global installation.
- Run installation and authentication under a least-privileged account.
- Document what credentials the CLI stores, where they are stored, and how users can revoke or delete them.
- Review every version update before changing the pinned version or integrity value.
- Pin the CLI to an explicitly reviewed version rather than installing the moving latest release:
