T08 · Insecure Dependencies
- Location
.- Finding
Unpinned Third-Party Packages Are Installed and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:17;README.md:11-12
Vulnerability Type: Unverified and unpinned executable dependencies
Risk Level: MediumVulnerable Code
SKILL.md:17:bash mcporter config add idea-reality --command "uvx idea-reality-mcp"README.md:11-12:bash npm install -g mcporter mcporter config add idea-reality --command "uvx idea-reality-mcp"Technical Analysis
The setup instructions install
mcporterglobally from npm without a fixed version and configureuvxto retrieve and executeidea-reality-mcpwithout a fixed version, integrity hash, lockfile, or documented publisher verification.This creates a supply-chain risk because the code executed by users can change after the skill itself has been reviewed. A compromised package release, compromised maintainer account, malicious dependency update, package-name takeover, or unexpected upstream change could result in arbitrary code running during installation or skill use. The global npm installation may also execute package lifecycle scripts in the invoking user's security context.
The project contains no evidence that either dependency is intentionally malicious. The vulnerability is the absence of controls ensuring that users execute the same reviewed dependency versions.
Attack Path
- An attacker compromises an upstream package, maintainer account, transitive dependency, or relevant package distribution channel.
- The attacker publishes a malicious release under the expected package name.
- A user follows the documented setup instructions or invokes the configured
uvxcommand. - The package manager resolves the unpinned package to the malicious release.
- Malicious installation hooks or package runtime code execute with the privileges of the user running
npm,uvx, ormcporter.
Impact Assessment
Successful exploitation could provide arbitrary code execution und ...[truncated 428 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin both direct tools to explicitly reviewed versions rather than resolving the latest release.
- Record and verify package integrity hashes or signatures where supported.
- Document the expected package publishers, source repositories, and release provenance.
- Use lockfiles or equivalent immutable dependency resolution for the MCP server and its transitive dependencies.
- Avoid global npm installation where possible; install into an isolated, least-privileged environment.
- Disable or tightly control package lifecycle scripts unless they are required and audited.
- Run the MCP server in a sandbox or container with restricted filesystem, credential, and network access.
- Establish a dependency-update review process so version changes are audited before documentation is updated.
