T08 · Insecure Dependencies
- Location
SKILL.md:59- Finding
Unpinned npm Package Is Automatically Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 59–62
Vulnerability Type: Unpinned and automatically executed third-party dependency
Risk Level: Mediumjson "pipeworx-books": { "command": "npx", "args": ["-y", "mcp-remote@latest", "https://gateway.pipeworx.io/books/mcp"] }Technical Analysis
The documented MCP configuration invokes
npxwith the-yoption, allowing package installation and execution without interactive approval. It also selectsmcp-remote@latest, a mutable npm release tag rather than an exact, reviewed version.Consequently, the code executed on a future invocation may differ from the code that was available when this skill was audited. The downloaded package and its dependency or lifecycle code execute locally with the privileges of the user running the agent. This creates a software supply-chain risk if the package, its publishing account, the npm distribution channel, or one of its dependencies is compromised.
The remote MCP URL is disclosed and is consistent with the skill's stated purpose. The vulnerability arises from automatically retrieving and executing an unpinned npm package, not from evidence that the current package or endpoint is malicious.
Attack Path
- An attacker compromises the
mcp-remotenpm package, its maintainer account, or a transitive dependency. - The attacker publishes a malicious version that becomes the target of the mutable
latesttag. - A user applies the MCP configuration documented in
SKILL.md. npx -y mcp-remote@latestdownloads the attacker-controlled release without requesting confirmation.- Package installation, lifecycle, or runtime code executes under the agent user's account.
- The malicious code can access resources available to that account or tamper with MCP communications.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the privileges of the user ru ...[truncated 430 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Replace
mcp-remote@latestwith an exact, reviewed package version. - Use a lockfile and verify package integrity with a trusted cryptographic hash.
- Avoid unattended installation through
npx -y; install the approved dependency through a controlled deployment process. - Review and lock transitive dependencies before deployment.
- Disable or strictly control npm lifecycle scripts where operationally possible.
- Run the MCP server in a sandbox or container with minimal filesystem, environment-variable, and network access.
- Establish a dependency-update process that requires security review and testing before changing the pinned version.
- Replace
