T08 · Insecure Dependencies
- Location
SKILL.md:44- Finding
Unpinned Third-Party Package Is Downloaded and Executed Automatically
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 44-50
Vulnerability Type: Unpinned and automatically executed npm dependency
Risk Level: Mediumjson { "mcpServers": { "pipeworx-colorapi": { "command": "npx", "args": ["-y", "mcp-remote@latest", "https://gateway.pipeworx.io/colorapi/mcp"] } } }Technical Analysis
The documented configuration invokes
npxwith the-yoption to download and executemcp-remote@latestwithout interactive confirmation. The mutablelatesttag does not identify an immutable, previously audited release, and the configuration does not provide lockfile or package-integrity verification.Consequently, the code executed by users can change after the Skill has been reviewed. A compromised npm account, registry incident, or malicious future package release could cause arbitrary package lifecycle or runtime code to execute locally. The audit found no evidence that the currently referenced package is malicious; the vulnerability is the unsafe dependency retrieval and execution model.
Attack Path
- An attacker compromises the npm package, its publisher account, or an upstream release process associated with
mcp-remote. - The attacker publishes a malicious version and assigns or causes it to receive the
latesttag. - A user follows the documented setup and starts the configured MCP server.
npx -y mcp-remote@latestretrieves the attacker-controlled version without asking the user to approve the selected release.- The downloaded package executes with the privileges and environment of the user running the Agent.
- Malicious code can access resources available to that user before or while presenting expected MCP bridge behavior.
Impact Assessment
Successful exploitation permits arbitrary code execution with the privileges of the Agent user. Depending on the runtime environment, exposed resources may include local files, environment variables, development cr ...[truncated 252 chars]
- An attacker compromises the npm package, its publisher account, or an upstream release process associated with
- Remediation
View remediation
Remediation Suggestions
- Replace
mcp-remote@latestwith an exact, audited version such asmcp-remote@x.y.z; do not use mutable tags or version ranges. - Install the dependency through a committed lockfile and use deterministic installation, such as
npm ci, rather than downloading it dynamically whenever the server starts. - Verify package provenance and integrity using npm integrity metadata, signatures, or an organization-controlled artifact registry.
- Review the selected release, including package lifecycle scripts and transitive dependencies, before deployment.
- Disable or tightly control package installation scripts where operationally possible.
- Run the MCP bridge in a sandbox or container with a minimal environment, read-only filesystem access where possible, no unnecessary credentials, and network access limited to required endpoints.
- Establish an explicit update process in which new package versions are reviewed, tested, and pinned before rollout.
- Replace
