T08 · Insecure Dependencies
- Location
README.md:29- Finding
Unverified Third-Party Package Is Downloaded and Executed as an MCP Server
- Content
View full analysis
Vulnerability Details
File Locations:
README.md:29-33references/INSTALL.md:19-26references/mcp-install.md:13-19references/mcp-install.md:24-36references/mcp-install.md:39-46references/OPENHANDS_MCP_CONFIG.json:1-8references/OPENCLAW_MCP_CONFIG.json:1-10
Vulnerability Type: Third-party supply-chain execution without local implementation review or artifact integrity verification
Risk Level: MediumVulnerable Code
README.md:29-33:bash ## The shortest install path Use the published package, not a repo-local checkout: uvx --from dealwatch==1.0.1 dealwatch-mcp servereferences/INSTALL.md:19-26:bash ## Smoke check uvx --from dealwatch==1.0.1 dealwatch-mcp list-tools --json If that command returns the tool inventory, the published MCP package is wired correctly.references/mcp-install.md:13-19:toml Add the server to `~/.openhands/config.toml`: [mcp] stdio_servers = [ { name = "dealwatch", command = "uvx", args = ["--from", "dealwatch==1.0.1", "dealwatch-mcp", "serve"] } ]references/mcp-install.md:24-36:json Add the server to your saved MCP server config: { "mcp": { "servers": { "dealwatch": { "command": "uvx", "args": ["--from", "dealwatch==1.0.1", "dealwatch-mcp", "serve"] } } } }references/mcp-install.md:39-46:bash ## Smoke check uvx --from dealwatch==1.0.1 dealwatch-mcp list-tools --json If that command returns the tool inventory, the published MCP package is wired correctly.references/OPENHANDS_MCP_CONFIG.json:1-8:json { "mcpServers": { "dealwatch": { "command": "uvx", "args": ["--from", "dealwatch==1.0.1", "dealwatch-mcp", "serve"] } } }references/OPENCLAW_MCP_CONFIG.json:1-10:json { "mcp": { "servers": { " ...[truncated 3175 chars]- Remediation
View remediation
Remediation Suggestions
- Publish or vendor the complete MCP implementation and make its source revision traceable to the distributed package artifact.
- Generate a locked dependency set that includes transitive dependencies and cryptographic hashes. Install only artifacts matching the reviewed lock data.
- Verify package ownership, release provenance, signatures, and build attestations before recommending execution.
- Prefer an internally mirrored or otherwise trusted package repository after independently validating the package and all dependencies.
- Run the MCP server in a dedicated sandbox or container with:
- a non-privileged service account;
- a minimal environment with secrets removed;
- read-only filesystem mounts where possible;
- access only to explicitly required directories;
- restricted outbound network access;
- operating-system resource limits.
- Review the actual MCP tool schemas and implementation to verify that all advertised operations are read-only and that submitted URLs cannot trigger unsafe internal-network requests.
- Document the package's required filesystem, environment, and network permissions so operators can enforce least privilege.
- Treat a successful
list-toolsresponse only as a connectivity check, not as proof of package integrity or safe behavior.
