T08 · Insecure Dependencies
Error
- Location
- SKILL.md:15
- Finding
- Unpinned Third-Party Package and Source Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 15–38 **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: High ### Vulnerable Code ```markdown ### Option A — npx (recommended) Add to `.mcp.json` in your project or `~/.claude/mcp.json`: ```json { "mcpServers": { "creditkarma": { "command": "npx", "args": ["-y", "creditkarma-mcp"], "env": { "CK_COOKIES": "CKTRKID=...; CKAT=eyJ...%3BeyJ...; ..." } } } } ``` ### Option B — from source ```bash git clone https://github.com/chrischall/creditkarma-mcp cd creditkarma-mcp npm install && npm run build ``` ``` ### Technical Analysis The recommended configuration executes `npx -y creditkarma-mcp` without pinning an exact package version or verifying package integrity. The `-y` option suppresses the installation confirmation, and the unversioned package name resolves to whichever release the npm registry serves when the MCP server starts. The source-installation alternative also clones the repository's current default branch rather than a reviewed commit and runs `npm install` followed by a package-defined build script. This delegates local code execution to a mutable remote repository and its transitive dependency graph. Because the resulting MCP process receives `CK_COOKIES`, a compromised package, maintainer account, repository, or dependency could access authenticated financial-session credentials. It could also execute commands with the operating-system privileges of the user running the MCP server. The audit did not establish that the referenced package or repository is currently malicious. The vulnerability is the unsafe, mutable dependency execution model. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, the source repository, or a transitive dependency. 2. The attacker publishes a modified package release or changes the repository's default branch. 3. A user starts the con ...[truncated 1065 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `creditkarma-mcp` to an exact, reviewed version instead of resolving the latest package: ```json "args": ["creditkarma-mcp@<audited-version>"] ``` 2. Do not use automatic confirmation for first-time or unreviewed package execution. 3. Pin source installations to a reviewed immutable commit: ```bash git checkout <reviewed-commit-hash> ``` 4. Commit and enforce a lockfile for all dependencies. 5. Verify npm integrity metadata, package provenance, signatures, and repository ownership before execution. 6. Disable unnecessary npm lifecycle scripts where feasible, or audit every script before allowing it to run. 7. Run the MCP server in a sandbox or restricted account with access only to its required database and credentials. 8. Separate dependency installation from runtime credential injection so installation and build scripts cannot access `CK_COOKIES`. 9. Vendor the reviewed server implementation when stronger supply-chain assurance is required. ]]>
