Back to skill

Security audit

mcp-adapter

Security checks for vulnerabilities and agentic risk

Overview

This plugin appears to do what it claims, but it gives agents broad access to configured external MCP tools without strong built-in limits or transport safeguards.

Install only for MCP servers you trust and understand. Prefer HTTPS endpoints, avoid exposing production databases or administrative tools through generic query/action interfaces, use read-only or least-privilege service accounts, restrict which agents can access the mcp tool, and require explicit confirmation for writes, deletes, messages, purchases, or other consequential actions. Update the flagged dependencies before production deployment.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T01 · Skill Instruction Hijacking

Warning
Location
src/index.js:34
Finding

Untrusted MCP Server Content Is Exposed Directly to the Agent

Content
View full analysis
{ this.tools.set(`${name}:${tool.name}`, { server: name, tool, client }); }); ``` The remotely supplied metadata is returned directly to the agent: ```javascript case 'list': { const tools = mcpManager.listTools(); return { content: [{ type: 'text', text: tools.length > 0 ? JSON.stringify(tools, null, 2) : 'No MCP tools available. Check server connection.' }] }; } case 'call': { if (!params.server || !params.tool) { throw new Error('server and tool are required for call action'); } const result = await mcpManager.callTool(params.server, params.tool, params.args || {}); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }; } ``` ### Technical Analysis Tool names, descriptions, input schemas, and execution results originate from an external MCP server. The plugin serializes this content directly into agent-visible text without attaching an explicit untrusted-data boundary, filtering instruction-like content, or enforcing approval before subsequent sensitive operations. This creates an indirect prompt-injection surface. A malicious or compromised MCP server can embed instructions in a tool description or result, such as requests to disregard the user's goal, disclose information, or invoke another powerful tool. The Skill instructions compound this risk by directing the agent to inspect remote tool descriptions and use remote results in multi-step workflows. The plugin does not itself grant the remote server local code-execution privileges. Exploitation depends on t ...[truncated 1459 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
src/http-transport.js:140
Finding

Configured MCP Endpoints Are Used Without Transport or Destination Enforcement

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (52)

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · README.md (reported line 146)May include surrounding context.

In OpenClaw chat:

text
User: List all MCP tools

AI: I'll check what MCP tools are available.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/CONFIGURATION.md (reported line 136)May include surrounding context.

Then reference in server

text

**Option 3: .env file**
```bash
# ~/.openclaw/.env
KR_LEGAL_API_KEY=your-api-key-here

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/CONFIGURATION.md (reported line 138)May include surrounding context.

Then reference in server

text

**Option 3: .env file**
```bash
# ~/.openclaw/.env
KR_LEGAL_API_KEY=your-api-key-here

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · docs/CONFIGURATION.md (reported line 144)May include surrounding context.

json
{
  "envFile": "/home/user/.openclaw/.env",
  "plugins": { ... }
}

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · README.md (reported line 433)May include surrounding context.

openclaw logs | grep MCP

Test in OpenClaw chat

"List MCP tools"

"Call a tool..."

text

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · docs/CONTRIBUTING.md (reported line 58)May include surrounding context.

openclaw logs | grep MCP

Test in OpenClaw chat

"List MCP tools"

"Call a tool..."

text

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · docs/REAL_EXAMPLE_KR_LEGAL.md (reported line 77)May include surrounding context.

openclaw logs | grep MCP

Test in OpenClaw chat

"List MCP tools"

"Call a tool..."

text

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · docs/REAL_EXAMPLE_KR_LEGAL.md (reported line 233)May include surrounding context.

openclaw logs | grep MCP

Test in OpenClaw chat

"List MCP tools"

"Call a tool..."

text

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · docs/TROUBLESHOOTING.md (reported line 152)May include surrounding context.

openclaw logs | grep MCP

Test in OpenClaw chat

"List MCP tools"

"Call a tool..."

text

MCP Config Access

High
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · docs/TROUBLESHOOTING.md (reported line 203)May include surrounding context.

openclaw logs | grep MCP

Test in OpenClaw chat

"List MCP tools"

"Call a tool..."

text

Instruction Override

High
Category
Prompt Injection
Confidence
70% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · README.md (reported line 412)May include surrounding context.

Diagnostic:

bash
# Enable debug mode
# Edit http-transport.js:
# new StreamableHTTPClientTransport(url, { debug: true })

Instruction Override

High
Category
Prompt Injection
Confidence
70% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · docs/TROUBLESHOOTING.md (reported line 246)May include surrounding context.

Diagnostic:

bash
# Enable debug mode
# Edit http-transport.js:
# new StreamableHTTPClientTransport(url, { debug: true })

Known Vulnerable Dependency: @hono/node-server==1.19.9 — 3 advisory(ies): CVE-2026-39406 (@hono/node-server: Middleware bypass via repeated slashes in serveStatic); GHSA-frvp-7c67-39w9 (Node.js Adapter for Hono: Path traversal in `serve-static` on Windows via encode); CVE-2026-29087 (@hono/node-server has authorization bypass for protected static paths via encode)

High
Category
Supply Chain
Confidence
93% confidence
Finding

@hono/node-server 1.19.9 is flagged with multiple high-severity advisories affecting static file serving, including path traversal and authorization/middleware bypass conditions. In an MCP integration skill that may expose HTTP endpoints or bridge external tools, weaknesses in request path normalization can let attackers reach protected files or bypass intended access controls if static serving is used anywhere in the dependency stack.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: @modelcontextprotocol/sdk==1.25.3 — 1 advisory(ies): CVE-2026-25536 (@modelcontextprotocol/sdk has cross-client data leak via shared server/transport)

High
Category
Supply Chain
Confidence
97% confidence
Finding

@modelcontextprotocol/sdk 1.25.3 is directly used by this skill and is reported vulnerable to a cross-client data leak via shared server/transport. Because this skill's purpose is MCP server integration across external tools and data sources, cross-session or cross-client isolation failures are especially dangerous and could expose one user's tool outputs, credentials, prompts, or data to another client.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: fast-uri==3.1.0 — 7 advisory(ies): CVE-2026-13676 (fast-uri vulnerable to host confusion via failed IDN canonicalization); CVE-2026-18446 (fast-uri vulnerable to host confusion via backslash authority introducer); CVE-2026-75975 (fast-uri vulnerable to server-side request forgery via malformed IPv6 normalizat) +4 more

High
Category
Supply Chain
Confidence
84% confidence
Finding

fast-uri 3.1.0 is flagged for multiple high-severity URI parsing issues including host confusion and possible SSRF-relevant normalization flaws. In an MCP integration skill that connects to external servers, APIs, and data sources, unsafe URL canonicalization can cause allowlist bypasses, misrouting, or access to unintended internal resources if user-influenced URLs are ever parsed or validated through affected code paths.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: hono==4.11.7 — 16 advisory(ies): CVE-2026-56762 (Hono missing validation of cookie name on write path in setCookie()); CVE-2026-47676 (Hono: app.mount() strips mount prefix using undecoded path, causing incorrect ro); CVE-2026-47675 (Hono: Cookie helper does not sanitize sameSite and priority, allowing Set-Cookie) +13 more

High
Category
Supply Chain
Confidence
88% confidence
Finding

hono 4.11.7 is flagged with many advisories spanning cookie handling, path/mount normalization, and other HTTP framework behaviors. Given that MCP integrations often expose web transports and handle authentication or session-like state, framework-level parsing and routing flaws can materially weaken request isolation, cookie safety, and route protection in deployment contexts that use Hono components.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: path-to-regexp==8.3.0 — 2 advisory(ies): CVE-2026-4923 (path-to-regexp vulnerable to Regular Expression Denial of Service via multiple w); CVE-2026-4926 (path-to-regexp vulnerable to Denial of Service via sequential optional groups)

High
Category
Supply Chain
Confidence
82% confidence
Finding

path-to-regexp 8.3.0 is reported vulnerable to Regular Expression DoS through crafted route patterns or matching scenarios. If attacker-controlled paths are matched against vulnerable expressions in an HTTP transport exposed by the MCP integration, repeated requests can drive disproportionate CPU use and degrade service availability.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: @modelcontextprotocol/sdk==1.25.3 — 1 advisory(ies): CVE-2026-25536 (@modelcontextprotocol/sdk has cross-client data leak via shared server/transport)

High
Category
Supply Chain
Confidence
98% confidence
Finding

The package.json declares @modelcontextprotocol/sdk version 1.25.3, which is reported as affected by CVE-2026-25536 involving cross-client data leakage through shared server/transport state. In an MCP integration skill, this context makes the issue more dangerous because the component is specifically used to connect agents to external tools and data sources, increasing the chance that one client session could receive another client's prompts, tool results, credentials, or other sensitive context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explains how to expose external MCP tools to agents but does not clearly warn that prompts, tool arguments, retrieved content, and potentially sensitive local or user data may be transmitted to third-party MCP servers. In an agent-integrated environment, this omission can cause users to enable the plugin without understanding the data exfiltration and remote-action risks inherent in external tool calls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The database example normalizes exposing a generic query tool and even shows direct SQL execution, but it does not explicitly warn about data exposure, destructive statements, or prompt-driven misuse. In an AI-agent setting, presenting raw query capability without strong cautions increases the chance of unauthorized reads, writes, schema changes, or leakage of sensitive business data.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill explicitly enables discovery and execution of external MCP tools, which implies network-capable actions, but it declares no explicit tool scope such as permissions or allowed-tools. That weakens least-privilege controls and can let an agent invoke broader external capabilities than a user or platform reviewer would expect.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs agents to send arguments to external MCP servers but does not warn that user-provided or system-derived data may leave the local trust boundary. This creates a real risk of unintended disclosure of sensitive prompts, personal data, internal identifiers, or other contextual information to third-party services.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation exposes a generic tool-invocation interface that can execute arbitrary MCP server actions, including sensitive capabilities such as database querying, but does not warn that these calls may have side effects, access confidential data, or interact with external systems. In an agent setting, lack of explicit safety guidance increases the chance that users or downstream integrators will treat tool calls as harmless information retrieval and invoke dangerous operations without confirmation or policy checks.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · docs/CONFIGURATION.md (reported line 291)May include surrounding context.

bash
# Test URL is accessible
curl http://localhost:3000/mcp

# Test with JSON-RPC request
curl -X POST http://localhost:3000/mcp \

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The legal research examples hard-code Korean-language queries, statute names, and legal analysis behavior, but the document does not state that this skill is specifically intended for Korean legal workflows or offer any language/locale choice. This can constitute a locale policy violation because the examples implicitly constrain usage to a specific language without user opt-in or explicit justification in the file.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.