T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:50
- Finding
- Unpinned Global Installation of a Third-Party npm Package## Vulnerability Details **File Location**: `SKILL.md`, line 50 **Vulnerability Type**: Unpinned third-party dependency installed globally **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown - `browser-cli` installed globally: `npm install -g browser-cli` ``` ### Technical Analysis The installation command does not specify an exact package version or integrity hash. It therefore retrieves whichever version of `browser-cli` the npm registry currently resolves as the latest release. The project provides no lockfile, checksum, vendored source, or other mechanism for verifying the retrieved artifact. The global installation scope is particularly sensitive because npm installation can execute package lifecycle scripts with the permissions of the invoking user. The installed package is subsequently entrusted with extensive browser-control capabilities, including reading page content, filling forms, uploading files, capturing screenshots, downloading data, and invoking Skill scripts. This is a supply-chain weakness rather than evidence that the current `browser-cli` release is malicious. Exploitation requires compromise or malicious replacement of the package, its publisher account, or its dependency chain. ### Attack Path 1. An attacker compromises the npm publisher account, package distribution channel, or a transitive dependency used by `browser-cli`. 2. The attacker publishes a malicious release that becomes the version resolved by the unpinned installation command. 3. A user or agent follows the Skill instructions and executes `npm install -g browser-cli`. 4. npm downloads and installs the mutable release and may execute attacker-controlled lifecycle scripts. 5. Malicious code runs with the invoking user's permissions and can potentially abuse the installed tool's browser and filesystem access. ### Impact Assessment Successful exploitation could provide code execution with the permissions of the user runn ...[truncated 570 chars]
- Remediation
- ## Remediation Suggestions - Pin `browser-cli` to a reviewed, exact version rather than implicitly installing the latest release. - Verify the package against a trusted integrity hash or a controlled lockfile before installation. - Document the authoritative npm package and source repository so users can detect typosquatting or package substitution. - Prefer a project-local installation with least-privilege execution over a global installation. - Disable or review npm lifecycle scripts where operationally possible, such as by initially inspecting packages with scripts disabled. - Review the pinned package and its transitive dependencies before granting it access to authenticated browser sessions or sensitive files. - Introduce a controlled upgrade process that requires security review before changing the pinned version.
