T08 · Insecure Dependencies
Error
- Location
- SKILL.md:17
- Finding
- Unpinned Third-Party Package Is Downloaded and Executed Automatically<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 17-30 **Vulnerability Type**: Unpinned and automatically executed third-party dependency **Risk Level**: High ### Vulnerable Code ```markdown Add to `.mcp.json` in your project or `~/.claude/mcp.json`: ```json { "mcpServers": { "evite": { "command": "npx", "args": ["-y", "evite-mcp"], "env": { "EVITE_EMAIL": "you@example.com", "EVITE_PASSWORD": "yourpassword" } } } } ``` ``` The alternative installation method is also unpinned: ```bash npm install -g evite-mcp ``` ### Technical Analysis The configuration invokes `npx -y evite-mcp` without an exact package version or integrity constraint. When the MCP server starts, `npx` may retrieve the currently published package from the npm registry and execute it automatically. The `-y` option suppresses the interactive installation prompt. The global installation command similarly installs whichever release is currently resolved by npm. Neither approach provides a lockfile, integrity hash, reviewed version constraint, or mechanism establishing that the npm artifact corresponds to the linked source repository. This creates a supply-chain boundary in which behavior reviewed at one point can be replaced by a later package release. A compromised npm publisher account, malicious package update, or registry-level attack could introduce arbitrary executable code. Because credentials are supplied to the same process, a compromised release could directly access them. ### Attack Path 1. An attacker compromises the `evite-mcp` npm publisher account, package, or release process. 2. The attacker publishes a malicious release under the existing package name. 3. A user starts the configured MCP server or runs the documented global installation command. 4. `npx -y` downloads and executes the malicious release without an approval prompt, or npm installs it globally. 5. The package runs with the permissions ...[truncated 707 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin the dependency to an exact reviewed version, for example `evite-mcp@<audited-version>`. - Remove `-y` so installation or package changes are not accepted silently. - Use a lockfile and verify npm integrity metadata or a separately published cryptographic checksum. - Verify that the npm artifact corresponds to the reviewed source and build process. - Prefer a locally installed, reviewed dependency over runtime package retrieval. - Run the MCP server in a sandbox with restricted filesystem and network access. - Configure the process with only the secrets and permissions required for its documented Evite operations. - Establish an update-review process before changing the pinned package version. ]]>
