T08 · Insecure Dependencies
- Location
SKILL.md:67- Finding
Unpinned npm Package Is Automatically Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 67–85
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumThe documented configurations execute the MCP server through
npx -ywithout pinning the npm package to an audited version:json **Claude Code** (`.claude/mcp.json`): { "mcpServers": { "content-distribution": { "command": "npx", "args": ["-y", "@automatelab/content-distribution-mcp"] } } }json **Claude Desktop** (`claude_desktop_config.json`): { "mcpServers": { "content-distribution": { "command": "npx", "args": ["-y", "@automatelab/content-distribution-mcp"] } } }Technical Analysis
The package reference
@automatelab/content-distribution-mcphas no exact version or integrity constraint. Consequently, npm resolves the package version at execution time. The-yoption suppresses the interactive installation confirmation, allowing the resolved package to be downloaded and executed automatically.This project contains only
SKILL.md; the referenced MCP server implementation is not bundled in the audited artifact. Its executable code and future releases therefore cannot be verified by this audit. If the npm package, publisher account, release process, or registry resolution path is compromised, a subsequently published package version could execute attacker-controlled code when the MCP server starts.Attack Path
- An attacker compromises the npm publisher account, package release pipeline, or another relevant supply-chain component.
- The attacker publishes a malicious version of
@automatelab/content-distribution-mcp. - A user starts an MCP client using the documented configuration.
npx -yresolves and downloads the currently available package without requiring confirmation.- The malicious package executes with the permissions and environment of the ...[truncated 984 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the MCP server to a specific, reviewed version, for example:
json "args": ["-y", "@automatelab/content-distribution-mcp@2.2.1"] - Prefer installing the dependency through a committed lockfile that records exact transitive dependency versions and integrity hashes.
- Verify package provenance, npm signatures or attestations, publisher identity, and integrity before installation.
- Remove
-ywhere practical so unexpected installation or version-resolution events require explicit approval. - Run the MCP server with least privilege in a restricted environment or container, exposing only the credentials and filesystem paths required for content distribution.
- Provide platform-scoped credentials with the minimum necessary permissions and rotate them if dependency compromise is suspected.
- Establish an explicit update process in which new package versions are reviewed, tested, and approved before the pinned version is changed.
- Pin the MCP server to a specific, reviewed version, for example:
