T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:26
- Finding
- Unpinned Third-Party Package Is Downloaded and Executed Automatically## Vulnerability Details **File Location**: `SKILL.md`, lines 26–27 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium **Complete Code Snippet**: ```json "command": "npx", "args": ["-y", "@ryantenney/frinkiac-mcp"] ``` ### Technical Analysis The documented MCP configuration invokes `npx` with an unversioned npm package name. Because no exact version is specified, npm can resolve a newer package release each time the command is run. The `-y` option automatically accepts the installation prompt, allowing the resolved package to be downloaded and executed without interactive confirmation. This creates a supply-chain risk because the code ultimately executed can change after the skill has been reviewed. Exploitation would require compromise or malicious control of the referenced npm package, its publisher account, or the relevant package-distribution path. The audit did not establish that the package is currently malicious. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, or another relevant supply-chain component. 2. The attacker publishes a malicious version under `@ryantenney/frinkiac-mcp`. 3. A user applies the documented MCP configuration and starts the server. 4. `npx -y` resolves and downloads the mutable package version without prompting for approval. 5. The malicious package executes locally with the permissions of the user running the MCP server. ### Impact Assessment Successful exploitation could permit arbitrary code execution under the MCP server user's account. Depending on that account's privileges and environment, the malicious dependency could access files, environment variables, credentials available to the process, and network resources, or modify data writable by that user. The configuration itself does not request elevated privileges, so the direct impact is bounded by the invoking user's permissions.
- Remediation
- ## Remediation Suggestions - Pin the package to an audited exact version, such as `@ryantenney/frinkiac-mcp@x.y.z`, rather than relying on mutable version resolution. - Verify the selected package version, publisher identity, repository, and release provenance before deployment. - Use a lockfile and npm integrity metadata where the MCP deployment mechanism supports them. - Prefer installing the reviewed version through a controlled dependency-management process instead of downloading it implicitly at each startup. - Remove `-y` where practical so unexpected installation or resolution changes require explicit approval. - Run the MCP server with least privilege, restrict its filesystem and network access, and avoid exposing unnecessary secrets through environment variables. - Monitor dependency advisories and review upgrades before changing the pinned version.
