T08 · Insecure Dependencies
Error
- Location
- SKILL.md:48
- Finding
- Unpinned Third-Party npm Package Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 48–61 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: High ### Vulnerable Code ```json { "mcpServers": { "colombia": { "command": "npx", "args": ["-y", "mcp-colombia-hub"] } } } ``` ```bash npx -y mcp-colombia-hub ``` ### Technical Analysis The documented installation and execution commands retrieve and run `mcp-colombia-hub` without specifying an exact package version or verifying an integrity hash. Although the document states that the expected version is `1.3.0`, neither execution command enforces that version. The `-y` option automatically accepts the package installation prompt. Consequently, invoking the command may download and execute whichever package version the npm registry resolves at that time. The effective executable payload can therefore change after this Skill has been reviewed. This creates a supply-chain trust boundary between the audited Skill documentation and the remotely distributed npm package. A malicious package release, compromised maintainer account, registry compromise, or unauthorized modification of a future release could introduce arbitrary executable code. ### 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 of `mcp-colombia-hub`. 3. A user installs or starts the MCP server using `npx -y mcp-colombia-hub`. 4. npm resolves and downloads the attacker-controlled package because no exact version is pinned. 5. `npx` executes the package entry point without an interactive confirmation prompt. 6. The malicious package runs with the operating-system privileges and environment access of the MCP client or invoking user. ### Impact Assessment Successful exploitation can result in arbitrary local code execution under the account running `npx`. Depending on that account's permissions and ...[truncated 411 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the package to an exact, reviewed version in every documented command: ```json { "mcpServers": { "colombia": { "command": "npx", "args": ["mcp-colombia-hub@1.3.0"] } } } ``` ```bash npx mcp-colombia-hub@1.3.0 ``` 2. Remove `-y` where practical so installation does not silently proceed without user confirmation. 3. Prefer a committed lockfile and a controlled installation workflow over resolving dependencies dynamically during each launch. 4. Verify npm package integrity and provenance before execution, including package signatures or attestations where available. 5. Review the actual source and transitive dependency tree of the pinned release. The current project contains only documentation and therefore does not permit verification of the remotely executed implementation. 6. Run the MCP server in a sandbox or restricted account with minimal filesystem, environment-variable, credential, and network access. 7. Establish a deliberate update process in which each new version is reviewed before changing the pinned version. ]]>
