T08 · Insecure Dependencies
- Location
SKILL.md:89- Finding
Unpinned Third-Party Package Execution via npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:89-90andSKILL.md:101-102
Vulnerability Type: Unpinned dependency execution
Risk Level: MediumThe following vulnerable configuration appears in both the Claude Code and Claude Desktop setup examples:
json "command": "npx", "args": ["-y", "@automatelab/citation-intelligence"]Technical Analysis
The configuration uses
npx -yto resolve and execute@automatelab/citation-intelligencewithout pinning an exact version. The-yoption suppresses the installation confirmation prompt. As a result, the package reviewed or expected when the Skill was published is not necessarily the package that will execute later.If the npm package, publisher account, or a future release is compromised, starting the configured MCP server could download and execute attacker-controlled package lifecycle or runtime code. The external package implementation is not included in the audited project, so its behavior and its claims concerning API-key handling cannot be independently verified from this repository.
Attack Path
- An attacker compromises the npm publisher account, package distribution process, or a future package release.
- The attacker publishes a malicious version under
@automatelab/citation-intelligence. - A user starts an MCP client configured according to
SKILL.md. npx -yresolves the current package version and executes it without requesting confirmation.- The malicious package executes with the privileges and environment of the MCP host.
- It may read provider API keys supplied through environment variables, access files available to the user, or make unauthorized network requests.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the privileges of the user running the MCP client. The affected scope may include environment variables containing OpenAI, Anthropic, Google, or Perplexity API k ...[truncated 321 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to a reviewed exact version, such as:
json "command": "npx", "args": ["-y", "@automatelab/citation-intelligence@0.10.0"] -
Verify the selected package version, publisher identity, provenance, and npm integrity metadata before deployment.
-
Prefer a controlled installation with a lockfile and integrity verification rather than resolving a package dynamically whenever the MCP server starts.
-
Establish an explicit dependency-update review process instead of automatically consuming future releases.
-
Run the MCP server with least privilege and restrict its filesystem and network access where the host platform permits.
-
Expose only the API keys required for the selected engines rather than supplying all provider credentials to the process.
-
Apply the same hardened configuration to both setup examples at
SKILL.md:89-90andSKILL.md:101-102.
-
