T08 · Insecure Dependencies
- Location
SKILL.md:49- Finding
Automatic Execution of an Unpinned Remote npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 49–50
Vulnerability Type: T08: Insecure Dependencies
Risk Level: Mediumjson { "mcpServers": { "pipeworx-disease": { "command": "npx", "args": ["-y", "mcp-remote@latest", "https://gateway.pipeworx.io/disease/mcp"] } } }Technical Analysis
The MCP configuration invokes
npxwith the mutable dependency specifiermcp-remote@latest. The-yoption suppresses the interactive confirmation that would ordinarily occur before npm downloads and executes a package.Because
latestis a mutable npm distribution tag, the code executed by this configuration can change without any modification to the reviewed Skill. No exact version, lockfile, or package-integrity value is provided. Consequently, the effective local executable depends on the package version served by the npm registry at invocation time.This creates a supply-chain risk if the package, its maintainer account, its publishing credentials, or its dependency graph is compromised. The audit found no evidence that the current package is malicious; the vulnerability is the unsafe, unpinned automatic execution mechanism.
Attack Path
- An attacker compromises the
mcp-remotepackage, a relevant maintainer or publishing account, or a transitive dependency used by a newly published release. - A malicious release becomes the version referenced by the npm
latesttag. - A user or agent starts the documented MCP server configuration.
npx -ydownloads the attacker-controlled release without requesting confirmation.- npm executes the package locally with the privileges and environment of the agent process.
- The malicious package can access resources available to that process before establishing, altering, or simulating the expected MCP connection.
Impact Assessment
Successful exploitation would provide code execution with the same operat ...[truncated 634 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Replace
mcp-remote@latestwith an exact, reviewed version, such asmcp-remote@x.y.z; do not use mutable tags or version ranges. - Install the dependency through a controlled project manifest and committed lockfile rather than downloading it dynamically on every launch.
- Verify package integrity through the package manager's lockfile integrity metadata or an equivalent trusted checksum and provenance mechanism.
- Remove
-ywhere operationally practical so unexpected package installation is not silently approved. - Review the selected package version and its transitive dependencies before deployment, and use automated dependency and provenance scanning.
- Run the MCP process under a dedicated least-privilege account or sandbox with restricted filesystem, environment-variable, credential, and network access.
- Establish an explicit update process in which new versions are reviewed, tested, and integrity-pinned before deployment.
- Replace
