T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned Third-Party MCP Package Is Automatically Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:4andSKILL.md:31-48; also documented inREADME.md:39-50
Vulnerability Type: Unpinned npm dependency with automatic remote package execution
Risk Level: MediumVulnerable Code
SKILL.md:4:yaml metadata: {"openclaw":{"requires":{"env":["HUMANTEXT_API_KEY"],"bins":["npx"]},"primaryEnv":"HUMANTEXT_API_KEY","install":{"npm":"@humantext/mcp-server"},"homepage":"https://humantext.pro"}}SKILL.md:31-48:json { "mcpServers": { "humantext": { "command": "npx", "args": ["-y", "@humantext/mcp-server"], "env": { "HUMANTEXT_API_KEY": "htpro_your_key_here" } } } }README.md:39-50repeats the same installation pattern:json { "mcpServers": { "humantext": { "command": "npx", "args": ["-y", "@humantext/mcp-server"], "env": { "HUMANTEXT_API_KEY": "htpro_your_key_here" } } } }Technical Analysis
The configuration invokes
npxwith-yand the unversioned package name@humantext/mcp-server. This causes npm to resolve the package version available from the configured registry and execute it without an interactive confirmation prompt. Neither an exact package version nor an integrity hash is specified.Consequently, the code executed during a future invocation may differ from the code that was available when the Skill was reviewed. A compromised npm account, malicious package release, registry compromise, or unexpected upstream change could introduce arbitrary code into the local MCP process.
The process is explicitly supplied with
HUMANTEXT_API_KEY. It also receives user-provided documents through MCP operations. Unless separately sandboxed, npm lifecycle behavior and the resulting server process may inherit the invoking user's filesystem, environment, and network permissions.Attack Path
...[truncated 1438 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the MCP package to a reviewed exact version, for example:
json { "command": "npx", "args": ["--yes", "@humantext/mcp-server@1.2.3"] }Replace the example version with a release that has been independently reviewed.
-
Prefer installing the dependency through a committed lockfile with npm integrity metadata rather than resolving it dynamically on every launch. Use
npm ciin a controlled installation step and execute the locally installed binary afterward. -
Verify package provenance, publisher identity, release signatures or attestations, and npm integrity hashes before deployment. Apply controlled dependency-update review instead of automatically accepting new releases.
-
Run the MCP server in a restricted environment with only the required network destinations, minimal filesystem access, and no unrelated environment variables. Avoid running it with administrator or root privileges.
-
Provide
HUMANTEXT_API_KEYthrough a dedicated secret-management mechanism, scope and rotate the key where supported, and revoke it promptly if package compromise is suspected. -
Clearly inform users that submitted text is processed by an external service. Users should avoid sending secrets, regulated data, or confidential documents unless the service's privacy and retention controls have been reviewed.
-
Consider removing
-yfrom development and review workflows so unexpected installation or package-resolution behavior is not silently accepted.
-
