T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Third-Party Package Is Downloaded and Executed Automatically
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:14,SKILL.md:60,SKILL.md:70-71,SKILL.md:87-88,SKILL.md:103-104,SKILL.md:119-120,SKILL.md:130,SKILL.md:143,SKILL.md:156,SKILL.md:163-164, andSKILL.md:177-178
Vulnerability Type: T08: Insecure Dependencies
Risk Level: HighVulnerable Code
The package installation metadata executes the package without pinning an exact version:
yaml bins: - node install: - npx -y @swarmwage/mcp --versionThe runtime setup instructions repeatedly use the same unpinned package:
bash claude mcp add swarmwage -- npx -y @swarmwage/mcpRepresentative MCP configuration:
json { "mcpServers": { "swarmwage": { "command": "npx", "args": ["-y", "@swarmwage/mcp"], "env": { "SWARMWAGE_PRIVATE_KEY": "0x..." } } } }OpenClaw configuration:
bash openclaw mcp set swarmwage '{"command":"npx","args":["-y","@swarmwage/mcp"],"env":{"SWARMWAGE_PRIVATE_KEY":"0x..."}}'Codex CLI configuration:
bash codex mcp add swarmwage --transport stdio --command "npx -y @swarmwage/mcp"toml [mcp_servers.swarmwage] command = "npx" args = ["-y", "@swarmwage/mcp"] env = { SWARMWAGE_PRIVATE_KEY = "0x..." }Technical Analysis
npx -y @swarmwage/mcpresolves and executes the package version selected by the package registry at invocation time. No exact version, lockfile, or integrity digest constrains the downloaded artifact. The-yoption also suppresses the normal installation confirmation.Consequently, the code executed after installation can differ from the code that was reviewed during this audit. A compromised package publisher account, registry compromise, or malicious future package release could introduce arbitrary code into every configured MCP host.
The exposure is especially sensitive because the downloaded package is deliberately lau ...[truncated 1559 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
@swarmwage/mcpto a reviewed, exact version in every command and configuration, for example@swarmwage/mcp@X.Y.Z. - Remove
-ywhere practical so package installation is not silently approved. - Install through a lockfile-controlled workflow and enforce package integrity hashes.
- Review package provenance, signatures, release artifacts, and publisher controls before upgrades.
- Separate installation from execution so an update cannot be downloaded automatically whenever the MCP server starts.
- Run the MCP server in a restricted environment with minimal filesystem and network access.
- Provide only a dedicated, low-value wallet with narrowly limited approvals. Do not expose a general-purpose wallet key.
- Establish an explicit upgrade process requiring security review before changing the pinned version.
- Pin
