T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:11
- Finding
- Unpinned Third-Party Executable Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 11–14 **Vulnerability Type**: Unpinned external npm executable **Risk Level**: Medium ### Vulnerable Code ```yaml install: - kind: node package: "@voteship/mcp-server" bins: [voteship-mcp] ``` ### Technical Analysis The skill directs the host to install and execute the third-party npm package `@voteship/mcp-server` without specifying an exact version or integrity hash. Consequently, the dependency resolved at installation time can differ from the version that was originally reviewed. The package implementation is not included in the audited project, so its runtime behavior, lifecycle scripts, network destinations, credential handling, and access controls cannot be verified from the available artifact. This is security-sensitive because the installed server is expected to receive `VOTESHIP_API_KEY` and perform privileged operations involving posts, votes, comments, users, analytics, releases, Stripe-derived customer revenue data, and webhooks. There is no direct evidence in the audited file that the named package is currently malicious. The vulnerability is the mutable, unverified supply-chain trust boundary. ### Attack Path 1. An attacker compromises the npm package, its publisher account, or another part of its publication pipeline. 2. The attacker publishes a malicious package version under the same package name. 3. A host installs this skill and resolves the package without an exact version or verified integrity value. 4. npm downloads and installs the attacker-controlled release. 5. Malicious lifecycle or runtime code executes with the installer or agent runtime's operating-system privileges. 6. The code accesses `VOTESHIP_API_KEY` from the environment and may use it to exfiltrate data or perform unauthorized VoteShip project operations. ### Impact Assessment Successful exploitation could permit arbitrary code execution within the p ...[truncated 492 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `@voteship/mcp-server` to a specific, audited version rather than resolving a mutable release. 2. Use a lockfile and verify the package's registry integrity hash during installation. 3. Review the pinned package source, transitive dependencies, npm lifecycle scripts, network destinations, and credential-handling behavior before deployment. 4. Disable npm installation scripts where feasible, or explicitly audit every required lifecycle script. 5. Run the MCP server in a sandbox with minimal filesystem, process, and outbound-network permissions. 6. Use a narrowly scoped API credential and rotate it periodically and after any suspected dependency compromise. 7. Restrict outbound network access to documented VoteShip endpoints where operationally possible. 8. Add automated dependency monitoring and require review before upgrading the pinned version.
