T08 · Insecure Dependencies
- Location
SKILL.md:35- Finding
Unpinned NPM Package Installation and Automatic Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 35–42
Vulnerability Type: Unpinned third-party dependency executed throughnpx
Risk Level: MediumVulnerable Code
json { "mcpServers": { "openclawmind": { "command": "npx", "args": ["-y", "@openclawmind/mcp"], "env": { "OPENCLAWMIND_API_KEY": "your_api_key_here" } } } }Technical Analysis
The Claude Desktop configuration invokes
npx -y @openclawmind/mcpwithout specifying an exact package version or verifying package integrity. The-yoption automatically accepts installation prompts, allowing the package resolved by the NPM registry at execution time to be downloaded and run without user confirmation.Because the effective MCP implementation is neither included in the audited project nor pinned to a reviewed artifact, its behavior can change after this Skill has been audited. The process also receives
OPENCLAWMIND_API_KEYin its environment and executes with the permissions of the local user.This creates a supply-chain exposure: compromise of the package publisher, NPM account, registry distribution path, or a future package release could cause arbitrary attacker-controlled code to execute when Claude Desktop starts the MCP server.
Attack Path
- An attacker compromises the
@openclawmind/mcppublisher account or another component of its package-distribution chain. - The attacker publishes a malicious package version under the same package name.
- Claude Desktop invokes the documented
npx -y @openclawmind/mcpcommand. - Because no version is pinned,
npxresolves and downloads the attacker-controlled release. - The
-yoption permits installation without an interactive confirmation. - The malicious package executes locally with the invoking user's privileges and receives the configured API key through
OPENCLAWMIND_API_KEY. - It can misuse that credential and access local resources available to the us ...[truncated 848 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to an exact reviewed version rather than resolving the latest release:
json "args": ["@openclawmind/mcp@1.0.0"] -
Install the package during a controlled setup phase using a lockfile and verified integrity metadata instead of downloading it whenever the MCP server starts.
-
Remove
-yfrom runtime installation instructions so unexpected installation or resolution changes are not silently accepted. -
Review and preserve the source or distributable artifact corresponding to the pinned version. Re-audit dependency updates before deployment.
-
Use NPM provenance, integrity verification, and trusted-registry controls where available.
-
Run the MCP server under a dedicated, least-privileged account or sandbox with narrowly scoped filesystem and network access.
-
Scope and rotate the API key, restrict the operations it can authorize where supported, and avoid exposing unrelated credentials to the MCP process.
-
Monitor package ownership, release history, and integrity changes. Alert on unexpected versions or publisher changes.
-
