T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Global Installation of a Third-Party CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 15
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: HighComplete Code Snippet:
bash npm install -g linearisThe package is also declared without a version constraint in the metadata at line 4:
yaml metadata: {"clawdbot":{"emoji":"📋","requires":{"bins":["linearis"]},"install":[{"id":"npm","kind":"node","package":"linearis","bins":["linearis"],"label":"Install linearis (npm)"}]}}Technical Analysis
The installation instruction retrieves the current
linearisrelease from npm without pinning a reviewed version or verifying an integrity hash. A global npm installation can run package lifecycle scripts and place an executable in a shared command path. Consequently, the code executed during installation and subsequent CLI use may differ from the code that existed when this Skill was audited.This CLI is intended to receive a Linear API token and perform read and write operations against Linear workspace resources. A malicious package release could therefore execute arbitrary code with the installing user's operating-system privileges, inspect local files and environment variables, intercept the API token, or alter data returned to the invoking agent.
Attack Path
- An attacker compromises the npm package, a maintainer account, or its publication pipeline.
- The attacker publishes a malicious package version under the legitimate package name.
- A user follows the documented
npm install -g linearisinstruction. - npm resolves the unpinned dependency to the malicious release.
- Malicious lifecycle or CLI code executes with the user's local privileges.
- The package captures the Linear API token when supplied through the token file, environment variable, or command-line option.
- The attacker uses the token to access or modify Linear resources within the token's authorized scope.
I
...[truncated 551 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to a specific, reviewed version instead of resolving the latest release, for example
linearis@<reviewed-version>. - Verify package provenance, maintainer identity, release signatures, and npm registry metadata before installation.
- Use lockfiles and integrity hashes where the installation workflow supports them.
- Prefer a project-local, isolated installation over a global installation.
- Disable npm lifecycle scripts when they are unnecessary and compatibility has been validated.
- Run the CLI in a sandbox or container with only the files and network access required for Linear operations.
- Provide the CLI with a least-privilege Linear token and rotate it immediately if dependency compromise is suspected.
- Establish a controlled dependency update process in which each new release is reviewed before the pinned version is changed.
- Pin the package to a specific, reviewed version instead of resolving the latest release, for example
