T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:25
- Finding
- Unpinned Global Installation of a Third-Party CLI<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 25-29 **Vulnerability Type**: Unpinned global dependency installation **Risk Level**: Medium ```sh npm install -g @fetchproxy/cli # provides `fpx` fpx profile add musescore --domain musescore.com fpx pair -p musescore # prints a pair code → approve in Transporter ``` ### Technical Analysis The setup instructions install the latest available version of `@fetchproxy/cli` globally without an exact version, lockfile, integrity hash, or other provenance verification. npm packages may execute lifecycle scripts during installation. A global installation also makes the package available outside this Skill and can increase its impact on the host. The CLI is subsequently trusted to establish persistent pairing with a browser extension and issue requests using browser session context. The supplied project does not include the CLI's source code or dependency tree, so those components could not be audited here. This is a supply-chain exposure rather than evidence that the current package is malicious. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, or a transitive dependency. 2. A malicious version is published under the existing package name. 3. A user follows the Skill instructions and runs the unpinned global installation. 4. npm retrieves the compromised release, which may execute malicious lifecycle code during installation. 5. The installed CLI may then execute arbitrary code with the user's privileges or misuse its browser-extension pairing and browser-accessible session context. ### Impact Assessment Successful exploitation could provide code execution with the privileges of the user running npm. Depending on the compromised component's behavior, this could expose user-accessible files, modify global npm-installed tooling, or abuse the browser bridge. The project does not instruct users to run the installation as r ...[truncated 197 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin `@fetchproxy/cli` to an exact, reviewed version rather than installing the latest release. - Document the expected publisher, package registry, version, and package integrity value. - Prefer a project-local dependency governed by a lockfile instead of a global installation. - Where compatible, install with lifecycle scripts disabled and explicitly enable only scripts that have been reviewed. - Verify package provenance or signed release artifacts before installation. - Document the browser extension permissions and restrict its site access to `musescore.com`. - Advise users not to execute npm installation commands with elevated privileges. - Periodically review the pinned CLI and its transitive dependency tree before upgrading. ]]>
