T08 · Insecure Dependencies
- Location
SKILL.md:31- Finding
Unpinned MCP Dependency Is Downloaded and Executed Without Confirmation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 31-44
Vulnerability Type: Unsafe third-party dependency retrieval and execution
Risk Level: MediumComplete Code Snippet:
json Add the following to your project's `.mcp.json` or Claude Code settings: { "mcpServers": { "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest", "--isolated"] } } }markdown `-y` skips the npx install confirmation. By default the server launches Chrome with its own dedicated profile (under `~/.cache/chrome-devtools-mcp/`), separate from your personal browser; `--isolated` goes one step further and uses a temporary profile that is wiped when the browser closes.Technical Analysis
The recommended MCP configuration invokes
npxwith both-yand the mutable@latestpackage tag. This causes npm to resolve, download, and execute whichever version is currently associated withchrome-devtools-mcp@latest, without an interactive installation confirmation.The effective executable can therefore change after the Skill has been reviewed. Although no malicious package is embedded in this project, the configuration creates a supply-chain trust boundary: compromise of the package, publisher account, registry resolution, or a future release could result in arbitrary package lifecycle or runtime code executing under the invoking user's account.
The
--isolatedbrowser option reduces exposure of the user's normal Chrome profile, but it does not sandbox the Node.js process itself or prevent the downloaded package from accessing resources available to the local process.Attack Path
- An attacker compromises the upstream package, its publisher account, or the release process.
- The attacker publishes a malicious version and assigns it to the
latesttag. - A user adopts the documented MCP configuration and starts the MCP server.
...[truncated 1309 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
chrome-devtools-mcp@latestwith a reviewed, exact version, such aschrome-devtools-mcp@X.Y.Z. - Remove
-yso first-time installation and unexpected resolution changes require explicit confirmation. - Establish a controlled upgrade process that reviews release notes, package contents, publisher provenance, and dependency changes before updating the pinned version.
- Use a lockfile or an internally reviewed package mirror where the MCP deployment model supports it.
- Verify package integrity through registry integrity metadata or organization-approved artifact checks.
- Run the MCP server with least privilege in a restricted account or container, limiting filesystem, environment-variable, and network access.
- Retain
--isolatedas the default and avoid attaching the MCP server to a daily browser profile unless authenticated state is strictly required.
- Replace
