Back to skill

Security audit

ToolRouter

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed ToolRouter gateway, but it asks users to install a persistent, unpinned MCP package and enables broad third-party tools with auto-provisioned account and possible paid usage.

Review before installing. Use this only if you are comfortable with a third-party ToolRouter service receiving tool inputs, auto-creating an account on first use, exposing a very broad tool catalog to the agent, and potentially requiring billing for paid tools. Prefer a pinned reviewed package version or the direct remote MCP option with explicit user approval rules for paid or high-impact actions.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Error
Location
SKILL.md:17
Finding
Unpinned Third-Party npm Package Is Downloaded and Executed Automatically## Vulnerability Details **File Location**: `SKILL.md`, lines 17–25 **Vulnerability Type**: Unpinned and automatically executed third-party dependency **Risk Level**: High ### Vulnerable Code ```json { "mcpServers": { "toolrouter": { "command": "npx", "args": ["-y", "toolrouter-mcp"] } } } ``` ### Technical Analysis The documented configuration runs `npx -y toolrouter-mcp` without specifying an exact package version, integrity hash, lockfile, or other verification mechanism. When OpenClaw starts the configured MCP server, `npx` may retrieve the package release currently selected by the npm registry and execute its installation or runtime code with the permissions of the OpenClaw process. The `-y` option suppresses the normal installation confirmation, eliminating an opportunity for the user to inspect the selected package and version. Because the configuration is placed in the persistent OpenClaw configuration file, subsequent launches may retrieve and execute a newer package release whose contents differ from those available when the Skill was reviewed. This creates a supply-chain trust boundary in which compromise of the npm package, its publisher account, or the associated publishing process could turn the documented setup command into an arbitrary local code-execution channel. ### Attack Path 1. An attacker compromises the `toolrouter-mcp` npm publisher account, publishing pipeline, or package distribution channel. 2. The attacker publishes a malicious package version containing harmful installation or runtime code. 3. A user or agent follows the Skill instructions and adds the unversioned `npx -y toolrouter-mcp` command to `~/.openclaw/openclaw.json`. 4. OpenClaw launches the configured MCP server. 5. `npx` resolves and downloads the attacker-controlled release without interactive confirmation. 6. The malicious package executes with the operating-system permissions and accessi ...[truncated 906 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to a specifically reviewed version, for example `toolrouter-mcp@1.0.2`, rather than resolving the latest available release. 2. Install the dependency through a committed lockfile and verify its npm integrity metadata or cryptographic signature before execution. 3. Remove `-y` from security-sensitive setup instructions so that unexpected package resolution requires explicit user approval. 4. Prefer a locally installed, reviewed binary referenced by an absolute path instead of downloading package code during every launch. 5. Require explicit user consent before modifying `~/.openclaw/openclaw.json`, and display the exact package name, version, source, and permissions involved. 6. Run the MCP server in a restricted environment with minimal filesystem access, a sanitized environment, limited outbound network access, and no unnecessary credentials. 7. Establish a controlled dependency-update process that reviews release changes, verifies provenance, and tests each new version before deployment. 8. Restrict the gateway to explicitly approved tools and capabilities rather than exposing the entire remote catalog by default.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

External Transmission

Medium
Category
Data Exfiltration
Content
Connect directly without npx:

```
https://api.toolrouter.com/mcp
```

## How It Works
Confidence
80% confidence
Finding
The skill directs agents to connect to a remote MCP endpoint, which means prompts, tool inputs, and potentially sensitive user data may be transmitted to an external service outside the local environment. Because this skill is a broad gateway to 230+ tools with auto-provisioning, the remote connection increases the risk of unreviewed data exposure and reduces transparency about where data is processed.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill enables automatic account creation on first use and indicates that some tools require billing, but the user-facing setup flow does not present this as a prominent warning before installation or invocation. In an agent context, this can lead to unintended third-party account creation, unexpected charges, and silent onboarding to an external service without informed user consent.

Static analysis

No suspicious patterns detected.