T08 · Insecure Dependencies
- Location
SKILL.md:19- Finding
Unpinned Global Installation of the Elytro CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 19
Vulnerability Type: Unpinned globally installed third-party dependency
Risk Level: MediumVulnerable Code Snippet:
markdown 1. **Install the Elytro CLI** – `npm install -g @elytro/cli` (Node ≥ 24). Most workflows reference CLI commands, so have it ready.Technical Analysis
The documented command installs the latest available version of
@elytro/cliglobally without pinning a reviewed version or verifying package integrity. The effective package contents can therefore change after this Skill has been audited.npm packages may execute lifecycle scripts during installation. If the package, publisher account, or release pipeline is compromised, following this instruction could execute attacker-controlled code under the privileges of the user running npm. Global installation also exposes the resulting executable throughout the user's environment, increasing its reach beyond the immediate project.
No evidence establishes that the current package is malicious; the vulnerability is the unsafe, mutable dependency installation procedure.
Attack Path
- An attacker compromises the npm publisher account, package release pipeline, or another component used to publish
@elytro/cli. - The attacker publishes a malicious release under the legitimate package name.
- A user follows
SKILL.mdand runsnpm install -g @elytro/cli. - npm resolves the mutable latest release rather than a previously audited version.
- Malicious lifecycle code can execute during installation, or the globally installed CLI can execute attacker logic when subsequently invoked.
- The payload operates with the permissions of the user who ran the command.
Impact Assessment
Successful exploitation could permit arbitrary code execution with the invoking user's privileges. Depending on that user's access, the payload could read or modify user-accessible files, ...[truncated 336 chars]
- An attacker compromises the npm publisher account, package release pipeline, or another component used to publish
- Remediation
View remediation
Remediation Suggestions
- Pin
@elytro/clito a specific, reviewed version rather than installing the mutable latest release. - Verify the package's provenance, signature, and integrity metadata before installation.
- Prefer a project-local installation with a committed lockfile over global installation.
- Run installation under a least-privileged account and avoid administrator or root execution.
- Disable lifecycle scripts where operationally possible, or audit all lifecycle scripts before allowing them to run.
- Establish a controlled update process in which each new version is reviewed and tested before changing the documented pin.
- Pin
