T08 · Insecure Dependencies
- Location
SKILL.md:26- Finding
Unpinned Third-Party Package Installation and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:26-29andSKILL.md:65-66
Vulnerability Type: Unpinned and mutable third-party dependency execution
Risk Level: MediumThe installation instructions globally install and execute
mcp-chrome-bridgerwithout specifying an exact reviewed version or integrity digest:bash npm install -g mcp-chrome-bridger # or pnpm install -g mcp-chrome-bridger mcp-chrome-bridger registerThe alternative MCP configuration also invokes the package without a pinned version:
json "command": "npx", "args": ["mcp-chrome-bridger", "stdio"]Technical Analysis
Package names without exact versions resolve to mutable releases from the configured package registry. Global installation may execute package lifecycle scripts with the privileges of the invoking user. Similarly,
npxcan retrieve and execute a registry package that was not included in or reviewed with this project.The project contains no lockfile, vendored implementation, cryptographic checksum, or package-signature verification that would bind installation to a known artifact. Consequently, compromise of the package publisher, registry account, release process, or dependency chain could cause users to execute attacker-controlled code.
The resulting bridge is particularly sensitive because the documented capabilities include access to an existing Chrome profile, authenticated browser sessions, browsing history, bookmarks, page content, form input, screenshots, and HTTP requests made with browser cookies.
Attack Path
- An attacker compromises the package publisher, registry account, release pipeline, or a transitive dependency used by
mcp-chrome-bridger. - The attacker publishes a malicious release under the expected package name.
- A user follows the documented global installation command, or an MCP client launches the unversioned package through
npx. - The package manager resolve ...[truncated 1325 chars]
- An attacker compromises the package publisher, registry account, release pipeline, or a transitive dependency used by
- Remediation
View remediation
Remediation Suggestions
- Pin the package to a reviewed exact version in every command, including both installation and execution:
bash npm install -g mcp-chrome-bridger@X.Y.Z npx --yes mcp-chrome-bridger@X.Y.Z stdio - Prefer a project-local dependency with a committed lockfile instead of a global installation.
- Verify package integrity using trusted checksums, registry integrity metadata, provenance attestations, or signatures.
- Document the expected package publisher, repository, version, release digest, and verification procedure.
- Review the package and its transitive dependencies before approving version updates.
- Use automated dependency scanning and permit updates only after security review.
- Disable package lifecycle scripts during installation where operationally feasible, and explicitly run only reviewed setup operations.
- Run the bridge under a dedicated, least-privileged account or sandbox with restricted filesystem, process, and network access.
- Restrict the bridge to the minimum browser permissions and profiles required for the task; avoid exposing a primary profile containing sensitive authenticated sessions.
- Pin and verify the separately downloaded Chrome extension release with an exact version and published cryptographic checksum before loading it.
- Pin the package to a reviewed exact version in every command, including both installation and execution:
