T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:32
- Finding
- Unpinned Global Installation of a Privileged Third-Party CLI<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:32` **Vulnerability Type**: Supply-chain exposure through an unpinned dependency **Risk Level**: Medium ### Vulnerable Code ```sh npm install -g @fetchproxy/cli # provides `fpx` ``` ### Technical Analysis The setup instructions globally install the latest version of `@fetchproxy/cli` without a version constraint, lockfile, or integrity verification. Consequently, the code installed and executed can change after this Skill has been reviewed. This dependency occupies a security-sensitive position because the Skill subsequently instructs the user to pair the CLI with a browser extension and route requests through a browser tab carrying a valid Compass session. Although no evidence indicates that the named package is currently malicious, an unpinned package release, registry compromise, or maintainer-account compromise could introduce arbitrary installation-time or runtime behavior. Global installation also makes the package available outside this Skill's directory and may increase the duration and scope of exposure compared with a project-local, version-locked installation. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, or its publication pipeline. 2. The attacker publishes a malicious release under the legitimate package name. 3. A user follows the Skill instructions and runs `npm install -g @fetchproxy/cli`. 4. npm retrieves the latest compromised release; package lifecycle scripts may execute immediately with the user's operating-system privileges. 5. The installed CLI can subsequently access inputs, outputs, and browser-bridge capabilities made available during pairing and Skill execution. 6. The malicious package may read user-accessible files, intercept Compass requests or responses, or send accessible information to an attacker-controlled destination. ### Impact Assessment Successful exploitation would permit code execution with the p ...[truncated 471 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the CLI to a specifically reviewed version, for example: ```sh npm install --global @fetchproxy/cli@REVIEWED_VERSION ``` 2. Publish the expected package version and npm integrity hash in the Skill documentation. 3. Prefer a project-local installation governed by a committed lockfile rather than a global installation. 4. Use `npm ci` with a reviewed `package-lock.json` where practical. 5. Verify that the package is obtained from the official npm registry and document its authoritative publisher and repository. 6. Review package lifecycle scripts before installation. Consider installation with scripts disabled if the package does not require them: ```sh npm install --ignore-scripts ``` 7. Periodically review and deliberately update the pinned version instead of automatically consuming the latest release. ]]>
