T08 · Insecure Dependencies
Error
- Location
- SKILL.md:134
- Finding
- Unpinned npm Package Is Executed Through Persistent MCP Configuration## Vulnerability Details **File Location**: `SKILL.md`, lines 134–159 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: High The skill instructs users to execute the mutable `latest` release of `chrome-devtools-mcp` through `npx` and place the same command in persistent MCP client configuration. ```bash # Add MCP server to mcporter mcporter server add chrome-devtools \ --command "npx" \ --args "chrome-devtools-mcp@latest,--browserUrl,http://127.0.0.1:18800,--no-usage-statistics" # Or with auto-connect (Chrome will be started if not running) mcporter server add chrome-devtools \ --command "npx" \ --args "chrome-devtools-mcp@latest,--autoConnect,--no-usage-statistics" ``` ```json { "mcpServers": { "chrome-devtools": { "command": "npx", "args": [ "chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:18800", "--no-usage-statistics" ] } } } ``` ### Technical Analysis The `@latest` version selector is mutable and does not identify the exact package artifact reviewed when this skill was audited. When the command is invoked, `npx` may download and execute whatever release the package registry currently identifies as the latest version. The persistent MCP configuration increases exposure because an MCP client may execute the command repeatedly in future sessions. If the package maintainer account, registry publication process, or a future release is compromised, the effective executable payload can change without any modification to this skill. The configured service also connects to a browser debugging endpoint. A malicious dependency could therefore combine its local process privileges with access to the active browser session. ### Attack Path 1. An attacker compromises the upstream package, maintainer account, or release pipeline, or a malicious future version is published. 2. The compro ...[truncated 1339 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `chrome-devtools-mcp@latest` with an exact, reviewed version, such as `chrome-devtools-mcp@X.Y.Z`. 2. Use a project lockfile and a deterministic installation workflow where the MCP client supports them. 3. Verify npm package provenance, publisher identity, and integrity metadata before installation. 4. Prefer a preinstalled, reviewed executable over allowing the MCP client to download packages automatically during startup. 5. Disable automatic dependency updates and introduce a controlled update process that includes source review, vulnerability scanning, and functional testing. 6. Run the MCP server under a dedicated, unprivileged account or sandbox with only the filesystem and network access required for browser automation. 7. Restrict access to the Chrome debugging endpoint and avoid connecting it to browser profiles containing unrelated sensitive sessions.
