T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:240
- Finding
- Unpinned Third-Party Package Retrieval and Execution via npx## Vulnerability Details **File Locations**: `SKILL.md:240-252`; `README.md:11` **Vulnerability Type**: Unpinned third-party dependency execution **Risk Level**: Medium **Vulnerable code in `SKILL.md:240-252`:** ```markdown ## MCP Server Integration For users of **Claude Desktop**, **Cursor**, or **Windsurf**, TorrentClaw is also available as an MCP (Model Context Protocol) server: ```bash npx @torrentclaw/mcp ``` **MCP vs Skill:** - **Skill (this file)**: For OpenClaw, Claude Code, Cline, Roo Code — natural language interface - **MCP Server**: For Claude Desktop, Cursor, Windsurf — structured tools interface - **Both** use the same TorrentClaw API backend See https://torrentclaw.com/mcp for MCP installation and usage. ``` **Vulnerable code in `README.md:11`:** ```markdown **Alternative:** For Claude Desktop, Cursor, or Windsurf, use the [MCP Server](https://torrentclaw.com/mcp) instead (`npx @torrentclaw/mcp`). ``` ### Technical Analysis The documentation recommends running `npx @torrentclaw/mcp` without an exact package version, integrity constraint, lockfile, or locally reviewed package artifact. If the package is not already available locally, `npx` can resolve it from the configured npm registry, download it, and execute its code immediately. Because package resolution is not pinned, the effective code executed by this command may change after the Skill itself has been audited. The repository under review does not contain the MCP package implementation, so the behavior of the downloaded component cannot be verified from the audited project. This creates a supply-chain trust boundary in which a compromised publisher account, malicious future release, registry compromise, or altered registry configuration could cause arbitrary third-party code to run. Package installation and execution may also trigger lifecycle scripts supplied by the downloaded dependency. ### Attack Path 1. An attacker compr ...[truncated 1384 chars]
- Remediation
- ## Remediation Suggestions 1. Replace the floating package reference with an exact, reviewed version, such as: ```bash npx --yes @torrentclaw/mcp@0.1.17 ``` The actual pinned version should be one that maintainers have explicitly audited. 2. Document the expected npm registry and provide package integrity or provenance verification instructions. Where supported, publish signed provenance and require users to verify it. 3. Prefer installing the package as a locked local dependency rather than downloading and executing it on demand: ```bash npm install --save-exact @torrentclaw/mcp@0.1.17 ``` Commit and review the resulting lockfile, then invoke the locked local binary. 4. Review package lifecycle scripts and the complete transitive dependency tree before recommending the package. 5. Keep the pinned version synchronized in both `SKILL.md` and `README.md` so users are not directed to a mutable latest release. 6. Add automated documentation checks that reject unversioned `npx` commands and other package-manager commands that immediately execute floating dependencies.
