T08 · Insecure Dependencies
- Location
SKILL.md:51- Finding
Unpinned Third-Party npm Package Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 51-64
Vulnerability Type: Unpinned remote npm dependency execution
Risk Level: MediumThe installation workflow instructs users to execute an npm package without pinning it to a reviewed version. The manual fallback explicitly selects the mutable
latestrelease.bash npx @clutchmarkets/mcp-server init --client <your-client>json { "mcpServers": { "clutch": { "command": "npx", "args": ["@clutchmarkets/mcp-server@latest"] } } }Technical Analysis
npxdownloads and executes third-party package code with the privileges of the invoking user. Because neither workflow pins the package to an exact reviewed version or verifies an integrity digest, the code executed may differ from the code that was present when the Skill was audited.The explicit use of
@latestmakes the fallback configuration persistently dependent on whichever release the package registry currently designates as latest. Provenance links, optional metadata inspection commands, and the documented consent prompt improve transparency but do not establish package integrity or prevent execution of a compromised future release.Attack Path
- An attacker compromises the npm publisher account, the package release process, or a transitive dependency.
- The attacker publishes a malicious release of
@clutchmarkets/mcp-server. - npm resolves the unversioned package or the explicit
@latestselector to that release. - A user follows the Skill's installation instructions or starts the configured MCP server.
npxdownloads and executes the malicious package under the user's local account.- The package can perform actions available to that account before the user can meaningfully inspect its runtime behavior.
Impact Assessment
Successful exploitation provides code execution with the privileges of the user runn ...[truncated 387 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to an exact, reviewed version in every command and configuration:
bash npx --yes @clutchmarkets/mcp-server@<exact-reviewed-version> init --client <your-client> - Replace
@latestin the manual configuration with the same exact reviewed version. - Record and verify the expected package integrity digest or signed provenance before execution.
- Establish an explicit dependency-upgrade process that reviews release changes and dependencies before changing the pinned version.
- Recommend running the package with least privilege and without administrator or root permissions.
- Preserve the existing explicit-consent requirement, but clearly state that consent does not replace version pinning and integrity verification.
- Where practical, download and inspect the package artifact before execution or use a trusted lockfile and controlled package registry.
- Pin the package to an exact, reviewed version in every command and configuration:
