T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Global Installation of a Third-Party CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 14
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable Code Snippet:
markdown - Auggie CLI installed: `npm install -g @augmentcode/auggie`Technical Analysis
The documented prerequisite installs
@augmentcode/auggieglobally without specifying a reviewed version or verifying package integrity. Consequently, npm resolves the package through its mutable distribution tag, normallylatest. The downloaded package may also execute npm lifecycle scripts during installation.Because the dependency implementation and a corresponding lockfile are not included in this project, its behavior cannot be validated as part of this audit. A compromised package publisher, registry account, distribution tag, or newly released package version could introduce malicious installation scripts or executable code after this skill has already been reviewed.
Global installation increases exposure because the resulting executable is placed in the user's global npm binary path and may subsequently be invoked by this skill or from unrelated projects.
Attack Path
- An attacker compromises the npm package publisher, publishing workflow, registry account, or another component of the package's supply chain.
- The attacker publishes a malicious version of
@augmentcode/auggieand assigns it to the version tag resolved by the unpinned installation command. - A user follows the documented prerequisite and runs
npm install -g @augmentcode/auggie. - npm downloads the attacker-controlled release without enforcing a previously reviewed version or integrity value.
- Malicious npm lifecycle scripts may execute during installation, or malicious CLI logic may execute when the documented
auggiecommands are later invoked. - The payload operates with the permissions of the user who performed the installation or invoked ...[truncated 694 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an explicitly reviewed version, for example
@augmentcode/auggie@X.Y.Z, rather than relying on a mutable distribution tag. - Prefer a project-local dependency managed through
package.jsonand a committed lockfile instead of a global installation. - Install with a lockfile-enforcing workflow such as
npm ciso dependency resolution fails when recorded versions or integrity hashes differ. - Verify the package's official provenance, publisher identity, signatures or attestations, and npm integrity metadata before approving upgrades.
- Review direct and transitive dependency changes before updating the pinned version.
- Disable lifecycle scripts during installation with
--ignore-scriptswhen the package does not require them. If scripts are required, review them before execution. - Run the CLI under a least-privileged account or isolated environment with access limited to the repository and files required for the task.
- Avoid installing the package with administrative privileges and document the expected permissions and external services used by the CLI.
- Pin the dependency to an explicitly reviewed version, for example
