T08 · Insecure Dependencies
- Location
SKILL.md:62- Finding
Unpinned npm Packages Executed Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:62-63,SKILL.md:73-74, andSKILL.md:85-86
Vulnerability Type: Unpinned third-party executable dependencies
Risk Level: MediumVulnerable Code
bash npx mcporter call wheels-router.search_location query="Hong Kong Airport" npx mcporter call wheels-router.plan_trip origin="22.28,114.24" destination="22.31,113.92"json { "mcpServers": { "wheels-router": { "command": "npx", "args": ["mcp-remote", "https://mcp.justusewheels.com/mcp"] } } }The same unpinned
mcp-remoteconfiguration is also provided for Cursor, Windsurf, and VS Code clients:json { "mcpServers": { "wheels-router": { "command": "npx", "args": ["mcp-remote", "https://mcp.justusewheels.com/mcp"] } } }Technical Analysis
The documented commands execute the
mcporterandmcp-remotenpm packages throughnpxwithout specifying reviewed package versions or enforcing integrity checks. If a requested package is not already available locally,npxmay resolve, download, and execute it from the configured npm registry.Consequently, the code that runs can change after this skill has been reviewed. A malicious future package release, compromised maintainer or registry account, dependency-chain compromise, or unsafe registry configuration could cause attacker-controlled JavaScript to execute automatically when the documented command or MCP client configuration is used.
The audit found no evidence that the current packages or the declared MCP endpoint are malicious. The vulnerability is the unsafe, mutable dependency execution mechanism.
Attack Path
- An attacker compromises the publishing account, release process, or dependency chain of
mcporterormcp-remote. - The attacker publishes a malicious package version under the expected package name.
- A user follows the documen ...[truncated 1348 chars]
- An attacker compromises the publishing account, release process, or dependency chain of
- Remediation
View remediation
Remediation Suggestions
- Pin every executable npm package to an explicitly reviewed version, for example
mcporter@X.Y.Zandmcp-remote@X.Y.Z. - Install dependencies through a committed lockfile that records package versions and integrity hashes rather than downloading mutable releases during MCP startup.
- After controlled installation, invoke the local binary directly or use
npx --no-installso execution fails instead of downloading an unavailable package. - Configure npm to use a trusted registry and retain lockfile integrity verification in deployment and CI workflows.
- Review package provenance, maintainer history, transitive dependencies, and published artifacts before approving upgrades.
- Run MCP bridge processes in a restricted environment with minimal filesystem, credential, network, and process permissions.
- Document an upgrade procedure requiring security review and testing before changing pinned versions.
- Pin every executable npm package to an explicitly reviewed version, for example
