T08 · Insecure Dependencies
- Location
references/ops-stack-mapping.md:106- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
references/ops-stack-mapping.md:106
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
markdown | **agent-browser** | Browser automation (form fills, screenshots, scraping) | CLI install: `npm install -g agent-browser` |Technical Analysis
The Skill recommends installing the latest available version of the
agent-browsernpm package globally. The command does not specify a reviewed version, verify package integrity, identify an authoritative source repository, or require review of package lifecycle scripts.Because npm package versions and transitive dependencies are mutable supply-chain inputs, following this instruction may execute unreviewed installation scripts with the user's privileges. A compromised package release, maintainer account, or transitive dependency could therefore introduce arbitrary code after the Skill itself has been audited.
The global installation scope increases the consequence: package files and executable shims are placed in the user's global Node.js environment rather than being isolated to a project. The audited project does not itself contain a malicious payload, so malicious intent is not established; the vulnerability is the unsafe dependency-installation practice.
Attack Path
-
An attacker compromises the
agent-browserpackage, its publisher account, or one of its transitive dependencies. -
The attacker publishes a malicious release containing an npm lifecycle script or modified executable.
-
A user follows the Skill's recommendation and runs:
bash npm install -g agent-browser -
npm resolves the current package release because no version is pinned.
-
Malicious lifecycle code executes during installation with the permissions of the invoking user.
-
The installed global executable may continue to run attacker-controlled behavior whenever called.
Impact Assessment
Successful exploitation ...[truncated 688 chars]
-
- Remediation
View remediation
Remediation Suggestions
-
Replace the unversioned command with a pinned, reviewed package version:
bash npm install --global agent-browser@<reviewed-version> -
Verify and document the package's official npm namespace, publisher, and authoritative source repository to reduce typosquatting and package-substitution risk.
-
Review the selected release, its transitive dependencies, and all npm lifecycle scripts before recommending installation.
-
Record and verify the expected package integrity hash where the installation process supports it.
-
Prefer project-local installation with a committed lockfile over global installation:
bash npm install --save-dev --save-exact agent-browser@<reviewed-version> -
Use
npm ciwith a reviewed lockfile in controlled environments. -
Disable lifecycle scripts during installation when they are unnecessary:
bash npm install --ignore-scripts --save-dev --save-exact agent-browser@<reviewed-version> -
Prefer an already-approved browser automation tool when one is available in the user's environment.
-
Require explicit user approval before installing any new third-party executable or MCP integration.
-
