T08 · Insecure Dependencies
- Location
SKILL.md:35- Finding
Unpinned Global Installation of a Third-Party CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 35
Vulnerability Type: Unpinned executable dependency installation
Risk Level: MediumVulnerable Code:
bash npm install -g @membranehq/cliTechnical Analysis
The skill instructs users or agents to install the Membrane CLI globally without specifying an exact, reviewed version. As a result, npm resolves the package version at installation time, and the code installed can differ from the version available when the skill was audited.
npm installation may execute package lifecycle scripts. Therefore, compromise of the package publisher, the package itself, or its transitive dependency chain could result in arbitrary code execution during installation. The global installation also places the package in the user's shared environment rather than isolating it to this project.
The package is not proven malicious; the vulnerability is the unsafe, unpinned supply-chain trust model.
Attack Path
- An attacker compromises the npm package publisher, package distribution process, or a transitive dependency.
- The attacker publishes a malicious release that npm resolves for the unpinned package name.
- A user or agent follows the skill instructions and runs the global installation command.
- npm downloads the malicious release and may execute attacker-controlled lifecycle scripts during installation.
- The malicious code executes with the privileges of the user running npm and can modify resources available to that account.
Impact Assessment
Successful exploitation could provide arbitrary code execution under the invoking user's account. The accessible scope could include user-readable local files, environment variables, CLI configuration, authentication state, and other resources available to that account.
Because the command performs a global installation, a malicious package could also affect subsequent uses of the installed CLI a ...[truncated 150 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the CLI to an exact version that has undergone security review, for example:
bash npm install -g @membranehq/cli@1.2.3 -
Prefer a project-local, lockfile-backed installation instead of a global installation.
-
Commit and review the relevant lockfile so resolved transitive dependency versions and package integrity hashes are stable.
-
Disable unnecessary npm lifecycle scripts where operationally feasible, or install in an isolated environment.
-
Update the pinned version only through a controlled dependency-review process that includes provenance, integrity, and vulnerability checks.
-
