T08 · Insecure Dependencies
- Location
SKILL.md:47- Finding
Automatic Execution of an Unpinned npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 47
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: HighVulnerable Code
json { "mcpServers": { "pipeworx-emojihub": { "command": "npx", "args": ["-y", "mcp-remote@latest", "https://gateway.pipeworx.io/emojihub/mcp"] } } }Technical Analysis
The setup directs
npxto download and executemcp-remote@latest. Thelatesttag is mutable and does not identify a specific, previously audited package artifact. The-yoption suppresses the normal installation confirmation, allowing the resolved package to be installed and executed automatically.Consequently, the code that runs can change after this Skill has been reviewed. A compromised npm account, malicious package update, registry compromise, or other supply-chain incident could cause a future invocation to execute attacker-controlled package code. No evidence establishes that the package is currently malicious; the vulnerability is the unsafe dependency acquisition and execution mechanism.
Attack Path
- An attacker compromises the package maintainer, publishing workflow, or relevant npm registry distribution path.
- The attacker publishes a malicious
mcp-remoterelease and assigns it thelatestdistribution tag. - A user configures or starts the Skill using the documented setup.
npx -yresolvesmcp-remote@latest, downloads the new package without interactive approval, and invokes its executable.- Malicious package lifecycle or runtime code executes in the local user's security context.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the privileges of the user or Agent process running
npx. Subject to operating-system permissions and sandboxing, this could expose accessible files, environment variables, Agent configuration, and credentials; permit outbound netw ...[truncated 270 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
mcp-remote@latestwith an exact, audited version, such asmcp-remote@x.y.z. - Verify the selected release and retain a lockfile or integrity hash so the installed artifact cannot change silently.
- Remove automatic confirmation through
-ywhere practical, particularly during initial installation or dependency updates. - Obtain dependencies from a controlled registry or vetted internal mirror and monitor the package for ownership and release changes.
- Run the MCP process in a restricted environment with minimal filesystem access, sanitized environment variables, limited credentials, and constrained outbound networking.
- Review and test dependency updates before changing the pinned version.
- Replace
