T08 · Insecure Dependencies
- Location
SKILL.md:81- Finding
Unpinned Global Installation of a Third-Party CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 81
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable Code
markdown 1. **Install CLI:** `npm i -g @fly-ai/flyai-cli`Technical Analysis
The skill instructs users to globally install
@fly-ai/flyai-cliwithout specifying an exact package version or verifying package integrity. Consequently, the code installed when the instruction is followed can change independently of the reviewed skill.npm installation may also execute package lifecycle scripts. Because the package is installed globally, those scripts and the resulting executable run with the permissions of the user performing the installation. The project does not provide a lockfile, checksum, package signature, or other mechanism for verifying that the installed release is the version that was audited.
This creates a supply-chain exposure if the package, one of its dependencies, its publisher account, or a future release is compromised.
Attack Path
- An attacker compromises the npm package publisher, a transitive dependency, or a future package release.
- The attacker publishes a malicious version under the legitimate package name.
- A user follows the documented
npm i -g @fly-ai/flyai-cliinstruction. - npm resolves the mutable latest version and downloads the compromised package.
- Malicious lifecycle code may execute during installation, or malicious behavior may run when the
flyaicommand is subsequently invoked. - The payload operates with the permissions of the installing or invoking user.
Impact Assessment
Successful exploitation could permit arbitrary code execution under the affected user's account. Depending on that account's permissions and environment, the attacker could access user-readable files, environment variables, CLI credentials, and API keys; modify user-owned files; make network requests ...[truncated 302 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a reviewed exact version, for example:
bash npm install --global @fly-ai/flyai-cli@1.2.3 - Prefer a project-local installation with a committed lockfile instead of modifying the user's global tool environment.
- Verify the package source, publisher identity, and integrity metadata before installation.
- Use npm provenance or signature verification where supported.
- Disable lifecycle scripts with
--ignore-scriptsif the package does not require them. - Document the exact tested CLI version and establish a controlled review process before updating it.
- Run the CLI with least privilege and never install it through an elevated administrator or root account unless strictly necessary.
- Pin the CLI to a reviewed exact version, for example:
