T08 · Insecure Dependencies
- Location
SKILL.md:134- Finding
Unpinned npm Package Is Executed Through Persistent MCP Configuration
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 134–159
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: HighThe skill instructs users to execute the mutable
latestrelease ofchrome-devtools-mcpthroughnpxand 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
@latestversion selector is mutable and does not identify the exact package artifact reviewed when this skill was audited. When the command is invoked,npxmay 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
- An attacker compromises the upstream package, maintainer account, or release pipeline, or a malicious future version is published.
- The compro ...[truncated 1339 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
chrome-devtools-mcp@latestwith an exact, reviewed version, such aschrome-devtools-mcp@X.Y.Z. - Use a project lockfile and a deterministic installation workflow where the MCP client supports them.
- Verify npm package provenance, publisher identity, and integrity metadata before installation.
- Prefer a preinstalled, reviewed executable over allowing the MCP client to download packages automatically during startup.
- Disable automatic dependency updates and introduce a controlled update process that includes source review, vulnerability scanning, and functional testing.
- Run the MCP server under a dedicated, unprivileged account or sandbox with only the filesystem and network access required for browser automation.
- Restrict access to the Chrome debugging endpoint and avoid connecting it to browser profiles containing unrelated sensitive sessions.
- Replace
