T08 · Insecure Dependencies
- Location
SKILL.md:361- Finding
Unpinned and Inconsistent npm Package Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:361-370and_meta.json:15
Vulnerability Type: Supply-chain exposure caused by mutable and inconsistent npm package references
Risk Level: MediumVulnerable Code
SKILL.md:359-370:markdown ## Setup One command:npx mingle-mcp setup
text `npx mingle-mcp@5.0.0 setup` does the same thing. Either auto-installs and configures Claude Desktop and Cursor. Restart your AI client. For manual config: ```json { "mcpServers": { "mingle": { "command": "npx", "args": ["mingle-mcp"] } } }_meta.json:15:json "install": "npx mingle-mcp-setup@5.0.0",Technical Analysis
The primary setup command and manual MCP configuration invoke
mingle-mcpthroughnpxwithout pinning an exact version. Each fresh resolution may therefore retrieve and execute a different package release from the npm registry.Although the documentation mentions the pinned command
npx mingle-mcp@5.0.0 setup, it presents the unpinned command as the primary option and states that both are equivalent. The persistent MCP configuration also remains unpinned.The metadata introduces a further inconsistency by specifying
mingle-mcp-setup@5.0.0, while the documented installer and runtime usemingle-mcp. The audited artifact contains no executable implementation, package lockfile, or integrity hash through which the downloaded code could be verified. Consequently, the behavior of the installed software is outside the immutable audit boundary.This is a supply-chain weakness rather than evidence that the current package is malicious.
Attack Path
- An attacker compromises the npm publisher account, release pipeline, or package distribution path for the package resolved by
npx. - The attacker publishes a malicious or otherwise compromised package version under the referenced package name.
- A user follows the recommended `npx mi ...[truncated 1269 chars]
- An attacker compromises the npm publisher account, release pipeline, or package distribution path for the package resolved by
- Remediation
View remediation
Remediation Suggestions
-
Pin the exact package version in every execution path:
bash npx --yes mingle-mcp@5.0.0 setupjson { "mcpServers": { "mingle": { "command": "npx", "args": ["--yes", "mingle-mcp@5.0.0"] } } } -
Resolve the package-name discrepancy between
mingle-mcpandmingle-mcp-setup. Use one documented, verified package consistently, or clearly document distinct responsibilities if both are genuinely required. -
Prefer installing from a lockfile-controlled project with a committed npm lockfile rather than resolving registry content dynamically whenever the MCP server starts.
-
Verify package provenance and integrity using npm provenance attestations, published checksums, signatures, or an equivalent trusted mechanism.
-
Avoid automatic modification of AI-client configuration where possible. Provide the exact proposed configuration and require explicit user approval before writing it.
-
Repeat security review and compatibility testing before changing the pinned version. Use an explicit update process rather than silently tracking the latest release.
-
Consider removing the packaged legacy tool surface described in
SKILL.md:530-539, even though it is disabled by default, to reduce the consequences of accidental environment-variable activation.
-
