T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:31
- Finding
- Unpinned Global Installation of a Browser-Session Bridge<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:31-33` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```sh npm install -g @fetchproxy/cli # provides `fpx` fpx profile add tock --domain exploretock.com fpx pair -p tock # prints a pair code → approve in Transporter ``` ### Technical Analysis The setup instructions globally install the latest available version of `@fetchproxy/cli` without a pinned version, lockfile, or integrity verification. The installed CLI is then paired with the Transporter browser extension and authorized to route requests through an open Tock browser tab. This bridge capability is necessary for the declared functionality because Tock is protected by a Cloudflare challenge and authenticated reservation requests require the user's browser session. However, the dependency receives security-sensitive access: it runs locally with the invoking user's privileges and processes responses obtained through a signed-in browser context. The project does not specify: - A reviewed package version. - An expected package integrity hash. - A lockfile or reproducible installation procedure. - The authoritative source and reviewed version of the Transporter extension. - A process for verifying updates before installation. Consequently, the effective implementation can change after this Skill has been audited. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or a future package release. 2. A user follows the documented unpinned global installation command. 3. npm installs and executes the compromised package with the user's local privileges. 4. The user pairs the compromised CLI with the browser extension and a Tock profile. 5. Malicious dependency code accesses data passing through the bridge, abuses authorized Tock requests, reads other resources available to the local process, or sends captured data to an attac ...[truncated 832 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `@fetchproxy/cli` to a specifically reviewed version rather than installing the latest release. 2. Verify the npm package integrity hash and publisher provenance before installation. 3. Provide a lockfile or another reproducible installation mechanism. 4. Prefer a project-local installation over a global installation where supported. 5. Document the official Transporter extension source, reviewed version, publisher, and minimum required permissions. 6. Restrict the bridge profile to the exact required origin, preferably `https://www.exploretock.com`, and only the necessary HTTP methods and paths if the bridge supports such controls. 7. Require explicit confirmation before authenticated reservation requests. 8. Establish an update-review process so new CLI and extension releases are audited before users install them. ]]>
