# CVE-2026-39974: n8n-MCP has an Authenticated SSRF via instance-URL header in multi-tenant HTTP mode

> Authenticated attackers can exploit SSRF in multi-tenant mode to read internal network data and cloud metadata via crafted headers.

- **Severity:** High 8.5 (`CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 9 Apr 2026
- **Updated:** 13 Apr 2026
- **Also known as:** GHSA-4ggg-h7ph-26qr

## What is CVE-2026-39974?

CVE-2026-39974 is a high-severity server-side request forgery vulnerability in czlonkowski n8n-mcp, published on 9 Apr 2026. Any signed-in user can exploit it over the network, with no action from the victim.

### Official description

n8n-MCP is a Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Prior to 2.47.4, an authenticated Server-Side Request Forgery in n8n-mcp allows a caller holding a valid AUTH_TOKEN to cause the server to issue HTTP requests to arbitrary URLs supplied through multi-tenant HTTP headers. Response bodies are reflected back through JSON-RPC, so an attacker can read the contents of any URL the server can reach — including cloud instance metadata endpoints (AWS IMDS, GCP, Azure, Alibaba, Oracle), internal network services, and any other host the server process has network access to. The primary at-risk deployments are multi-tenant HTTP installations where more than one operator can present a valid AUTH_TOKEN, or where a token is shared with less-trusted clients. Single-tenant stdio deployments and HTTP deployments without multi-tenant headers are not affected. This vulnerability is fixed in 2.47.4.

Weakness: CWE-918 (Server-Side Request Forgery)

## Which versions are affected by CVE-2026-39974?

2 open source packages ship an affected version, including n8n-mcp. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `n8n-mcp` | npm | All versions | 2.47.4 |
| `n8n-mcp` | npm | All versions | 2.47.4 |

Products: N8n-Mcp N8n-Mcp.

## How do I fix CVE-2026-39974?

Upgrade n8n-mcp to 2.47.4 or later.

## Is CVE-2026-39974 being exploited?

There is no known exploitation of CVE-2026-39974 in the wild and no public exploit code.

## Other vulnerabilities in czlonkowski n8n-mcp

- [CVE-2026-54052](https://insights.sbomify.com/CVE-2026-54052/): n8n-MCP: Cross-tenant access to workflow version backups in multi-tenant HTTP deployments (critical 9.9)
- [CVE-2026-42449](https://insights.sbomify.com/CVE-2026-42449/): n8n-MCP: IPv4-mapped IPv6 addresses bypass SSRF protection in validateUrlSync(), enabling full SSRF for SDK embedders (high 8.5)
- [CVE-2026-45707](https://insights.sbomify.com/CVE-2026-45707/): n8n-MCP: Multi-tenant MCP requests fall back to process-level n8n credentials when tenant headers are absent or incomplete (high 8.1)
- [CVE-2026-44694](https://insights.sbomify.com/CVE-2026-44694/): n8n-MCP: Authenticated SSRF in n8n-mcp webhook and API client paths (high 7.2)
- [CVE-2026-45582](https://insights.sbomify.com/CVE-2026-45582/): n8n-MCP: Workflow telemetry sanitizer could retain partial values from URL-shaped node parameters (medium 6.5)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-39974 and fix it if it is affected.

What it is: CVE-2026-39974 is a high-severity server-side request forgery vulnerability in czlonkowski n8n-mcp, published on 9 Apr 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-39974 in the wild and no public exploit code.

Affected packages and fixed versions:
- n8n-mcp (npm): affected all versions; fixed in 2.47.4
- n8n-mcp (npm): affected all versions; fixed in 2.47.4

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-39974/ (Markdown: https://insights.sbomify.com/CVE-2026-39974/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-39974
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-39974
- OSV: https://osv.dev/vulnerability/CVE-2026-39974

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-39974/
Summaries are generated and may contain mistakes; the official description above is the record.
