T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:33
- Finding
- Unpinned Global Installation of a Security-Sensitive Third-Party CLI<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 33 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```sh npm install -g @fetchproxy/cli # provides `fpx` ``` ### Technical Analysis The setup instructions install the latest available version of `@fetchproxy/cli` globally without pinning a reviewed version or verifying package integrity. This CLI occupies a security-sensitive position because the Skill subsequently uses it to pair with a browser extension, capture an `Authorization` header, and transmit authenticated OneHome API requests. Because npm installation can execute package lifecycle scripts, a compromised package release or publishing account could execute arbitrary code during installation. A future release could also silently alter credential-capture or request-routing behavior after this Skill has been reviewed. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or a future release process. 2. The attacker publishes a malicious version under the legitimate package name. 3. A user follows the Skill instructions and runs the unpinned global installation command. 4. npm downloads the malicious latest version and may execute its lifecycle scripts. 5. The malicious package executes with the user's privileges and can access files, environment variables, browser-bridge data, or subsequently handled OneHome credentials. ### Impact Assessment Successful exploitation could result in arbitrary code execution with the installing user's privileges. Because the CLI handles captured bearer tokens and browser-mediated sessions, exploitation could also expose OneHome session credentials, permit authenticated access within the victim's OneHome scope, tamper with API requests, or compromise other locally accessible data. The global installation increases exposure by placing the package in the user's shared command environment rather than isolat ...[truncated 51 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin the dependency to an exact, reviewed version rather than installing the latest release. - Document the expected official package publisher and repository. - Verify the downloaded package using a trusted integrity hash or signed provenance where available. - Prefer a project-local installation governed by a committed lockfile instead of a global installation. - Disable npm lifecycle scripts during installation if the package does not require them. - Review package updates before changing the pinned version, particularly code related to browser pairing, header capture, and request forwarding. - Run the CLI with the minimum operating-system privileges and in an isolated environment where practical. ]]>
