T08 · Insecure Dependencies
- Location
SKILL.md:50- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 50
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable 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-clithe 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-clirelease is malicious. Exploitation requires compromise or malicious replacement of the package, its publisher account, or its dependency chain.Attack Path
- An attacker compromises the npm publisher account, package distribution channel, or a transitive dependency used by
browser-cli. - The attacker publishes a malicious release that becomes the version resolved by the unpinned installation command.
- A user or agent follows the Skill instructions and executes
npm install -g browser-cli. - npm downloads and installs the mutable release and may execute attacker-controlled lifecycle scripts.
- 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]
- An attacker compromises the npm publisher account, package distribution channel, or a transitive dependency used by
- Remediation
View remediation
Remediation Suggestions
- Pin
browser-clito 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.
- Pin
