T08 · Insecure Dependencies
- Location
README.md:63- Finding
Unpinned Third-Party Package Is Automatically Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 63–67
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: Mediumtoml [mcp_servers.chrome-mcp-server] enabled = true command = "npx" args = ["-y", "-p", "mcp-chrome-bridge", "mcp-chrome-stdio"]Technical Analysis
The recommended configuration invokes
npxwith-yand requestsmcp-chrome-bridgewithout an exact version or integrity constraint. When the MCP server starts, npm may download and execute whichever package version currently satisfies that unversioned package name. The-yoption suppresses the normal installation confirmation.This creates a supply-chain trust boundary outside the reviewed project. npm package lifecycle scripts and the selected
mcp-chrome-stdioexecutable can run with the privileges of the user launching the Agent. The configuration does not bind the package to a reviewed release, lockfile, checksum, or immutable artifact.The documentation associates the integration with
hangwin/mcp-chrome, but the executable configuration does not independently verify that the package resolved from npm corresponds to a trusted, audited source release.Attack Path
- An attacker compromises the npm account, package publication process, or another part of the distribution chain for
mcp-chrome-bridge. - The attacker publishes a malicious release under the package name that the unversioned configuration resolves.
- A user follows the documented configuration and starts the configured MCP server.
npx -y -p mcp-chrome-bridge mcp-chrome-stdiodownloads the malicious release without an interactive confirmation.- Package installation scripts or the MCP executable run attacker-controlled code with the Agent user's local privileges.
- Because the component is intended to integrate with a logged-in Chrome session, malicious code may also attempt to access browser-visible data or abuse the browser automation capabilities avai ...[truncated 662 chars]
- An attacker compromises the npm account, package publication process, or another part of the distribution chain for
- Remediation
View remediation
Remediation Suggestions
- Pin
mcp-chrome-bridgeto an exact, reviewed version rather than allowing npm to resolve the latest release. - Use a lockfile and a reproducible installation process instead of downloading the package dynamically whenever the MCP server starts.
- Verify the package publisher, repository, release provenance, and expected executable before recommending installation.
- Enforce npm integrity verification through a committed lockfile or a documented checksum/signature validation process.
- Remove
-yfrom first-time setup so users can review the package and resolved version before execution. - Prefer installing the verified dependency separately and configuring the MCP server to invoke the pinned local executable.
- Run the bridge with least privilege and restrict its filesystem, environment-variable, network, and browser access to what is necessary.
- Document a tested version-upgrade procedure that requires security review before changing the pinned release.
- Pin
