n8n-MCP: Multi-tenant MCP requests fall back to process-level n8n credentials when tenant headers are absent or incomplete
Description
Summary
When ENABLE_MULTI_TENANT=true, the HTTP transport documents that the target n8n instance is selected per-request from x-n8n-url / x-n8n-key headers. Requests that omitted those headers — or supplied only one of them — silently fell back to the process-level N8N_API_URL / N8N_API_KEY credentials configured for the operator's own n8n instance. As a result, an authenticated MCP tenant could cause n8n management calls to execute against the operator's instance instead of its own.
This affects HTTP-mode deployments of n8n-mcp that are run as a shared multi-tenant service. Single-tenant deployments (ENABLE_MULTI_TENANT unset or false) are not affected.
Impact
An authenticated MCP tenant exploiting this path could read and write workflows, executions, data-table contents, and credential metadata on the operator's n8n instance. If the operator's n8n permits Code-node execution that reaches OS-level modules, the path could escalate to remote code execution inside the operator's n8n runtime. The process-level N8N_API_KEY is, in practice, a high-privilege key — Community Edition keys are unscoped by default, and even Enterprise scopes were configured for the operator's own needs and would carry over wholesale to a tenant who triggered the fallback.
Patches
Fixed in n8n-mcp 2.51.2. The fix:
- Rejects header-less multi-tenant requests at the HTTP edge with HTTP 400 / JSON-RPC
-32602before any handler runs. - Refuses to construct an env-credential n8n API client when
ENABLE_MULTI_TENANT=true. - Closes secondary leak paths in trigger handlers and in the responses of
n8n_health_check,n8n_diagnostic,n8n_deploy_template, andn8n_audit_instanceso the operator's URL and env-key indicator are not surfaced to tenants.
Single-tenant behavior is unchanged.
Upgrade
# NPM
npx n8n-mcp@latest
# Docker
docker pull ghcr.io/czlonkowski/n8n-mcp:latest
Workarounds
If an immediate upgrade is not possible, any one of the following reduces or eliminates exposure:
- Disable multi-tenant mode. Set
ENABLE_MULTI_TENANT=false(or unset it) and run a separate n8n-mcp instance per tenant with that tenant's ownN8N_API_URL/N8N_API_KEY. This removes the affected code path entirely. - Reject malformed requests at a proxy. Require both
x-n8n-urlandx-n8n-keyheaders on every request and return 400 if either is missing. Neutralizes the primary header-omission path but does not address the secondary response-shape disclosures, so this is a partial mitigation only. - Reduce the blast radius of the operator API key. If your n8n instance supports API key scoping (Enterprise, or a Community Edition build that exposes scopes), provision the operator's
N8N_API_KEYwith the minimum scopes required for the operator's own n8n-mcp functions. This does not close the boundary break but limits what a falling-back tenant can do.
Credit
Reported by @u-ktdi.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Multi-tenant MCP requests lacking required headers fall back to operator-level n8n credentials, allowing tenant access to operator's instance.
Vulnerability
In multi-tenant HTTP mode (ENABLE_MULTI_TENANT=true) of n8n-mcp versions before 2.51.2, requests that omit or supply only one of the x-n8n-url or x-n8n-key headers silently fall back to the process-level N8N_API_URL and N8N_API_KEY credentials configured for the operator's own n8n instance [2][3]. This affects HTTP-mode deployments used as a shared multi-tenant service; single-tenant deployments are not affected.
Exploitation
An authenticated MCP tenant can omit both required headers or supply only one, causing n8n management calls to execute against the operator's n8n instance instead of its own [2][3]. No additional authentication or privilege is needed beyond valid tenant access.
Impact
Successful exploitation allows the tenant to read and write workflows, executions, data-table contents, and credential metadata on the operator's n8n instance [2][3]. If the operator's n8n permits Code-node execution that reaches OS-level modules, this could escalate to remote code execution within the operator's n8n runtime. The process-level N8N_API_KEY is typically high-privilege, with unscoped Community Edition keys or Enterprise scopes configured for the operator's needs.
Mitigation
Fixed in n8n-mcp version 2.51.2 [2][4]. The fix rejects header-less multi-tenant requests at the HTTP edge with HTTP 400/JSON-RPC -32602, refuses to construct an env-credential n8n API client when multi-tenant mode is enabled, and closes secondary leak paths in trigger handlers and certain responses [2][3]. Workarounds include disabling multi-tenant mode (ENABLE_MULTI_TENANT=false) or setting reverse proxy rules to ensure headers are always present [2][3].
AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1- Range: <= 2.51.1
Patches
1853015d0897bMerge commit from fork
19 files changed · +342 −33
CHANGELOG.md+8 −0 modified@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.51.2] - 2026-05-11 + +### Security + +- Fix silent env-credential fallback in multi-tenant HTTP mode (GHSA-jxx9-px88-pj69). When `ENABLE_MULTI_TENANT=true`, requests that omitted the `x-n8n-url` and `x-n8n-key` headers fell through to the process-level `N8N_API_URL` / `N8N_API_KEY`, letting one authenticated MCP tenant operate on the operator's n8n instance. Both paths now fail closed: the HTTP edge rejects header-less multi-tenant requests with `400 Multi-tenant headers required`, and `getN8nApiClient` refuses to construct an env-fallback client when `ENABLE_MULTI_TENANT=true`. Single-tenant mode is unchanged. Reported by @u-ktdi. + +Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en + ## [2.51.1] - 2026-05-06 ### Security
dist/http-server-single-session.d.ts.map+1 −1 modified@@ -1 +1 @@ -{"version":3,"file":"http-server-single-session.d.ts","sourceRoot":"","sources":["../src/http-server-single-session.ts"],"names":[],"mappings":";AAMA,OAAO,OAAO,MAAM,SAAS,CAAC;AAqB9B,OAAO,EAAE,eAAe,EAA2B,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA+DpE,MAAM,WAAW,8BAA8B;IAC7C,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAED,qBAAa,uBAAuB;IASlC,OAAO,CAAC,UAAU,CAAoG;IACtH,OAAO,CAAC,OAAO,CAA2E;IAC1F,OAAO,CAAC,eAAe,CAAuF;IAC9G,OAAO,CAAC,eAAe,CAA6E;IACpG,OAAO,CAAC,kBAAkB,CAAyC;IACnE,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAM;IAG3B,OAAO,CAAC,cAAc,CAER;IACd,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,uBAAuB,CAAC,CAA0B;gBAE9C,OAAO,CAAC,EAAE,8BAA8B;IAapD,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,sBAAsB;YAqChB,aAAa;IAuC3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,sBAAsB;IAkC9B,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,mBAAmB;YA2Cb,oBAAoB;YAwBpB,oBAAoB;IA2BlC,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,mBAAmB;IAoDrB,aAAa,CACjB,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,IAAI,CAAC;YA4TF,gBAAgB;IA+C9B,OAAO,CAAC,gBAAgB;IASlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAokBtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD/B,cAAc,IAAI;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,GAAG,EAAE,MAAM,CAAC;YACZ,UAAU,EAAE,MAAM,EAAE,CAAC;SACtB,CAAC;KACH;IAmCM,kBAAkB,IAAI,YAAY,EAAE;IAwEpC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM;CAsG7D"} \ No newline at end of file +{"version":3,"file":"http-server-single-session.d.ts","sourceRoot":"","sources":["../src/http-server-single-session.ts"],"names":[],"mappings":";AAMA,OAAO,OAAO,MAAM,SAAS,CAAC;AAqB9B,OAAO,EAAE,eAAe,EAA2B,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA+DpE,MAAM,WAAW,8BAA8B;IAC7C,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAED,qBAAa,uBAAuB;IASlC,OAAO,CAAC,UAAU,CAAoG;IACtH,OAAO,CAAC,OAAO,CAA2E;IAC1F,OAAO,CAAC,eAAe,CAAuF;IAC9G,OAAO,CAAC,eAAe,CAA6E;IACpG,OAAO,CAAC,kBAAkB,CAAyC;IACnE,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAM;IAG3B,OAAO,CAAC,cAAc,CAER;IACd,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,uBAAuB,CAAC,CAA0B;gBAE9C,OAAO,CAAC,EAAE,8BAA8B;IAapD,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,sBAAsB;YAqChB,aAAa;IAuC3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,sBAAsB;IAkC9B,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,mBAAmB;YA2Cb,oBAAoB;YAwBpB,oBAAoB;IA2BlC,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,mBAAmB;IAoDrB,aAAa,CACjB,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,IAAI,CAAC;YA4TF,gBAAgB;IA+C9B,OAAO,CAAC,gBAAgB;IASlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAulBtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD/B,cAAc,IAAI;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,GAAG,EAAE,MAAM,CAAC;YACZ,UAAU,EAAE,MAAM,EAAE,CAAC;SACtB,CAAC;KACH;IAmCM,kBAAkB,IAAI,YAAY,EAAE;IAwEpC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM;CAsG7D"} \ No newline at end of file
dist/http-server-single-session.js+15 −0 modified@@ -959,6 +959,21 @@ class SingleSessionHTTPServer { const headers = extractMultiTenantHeaders(req); const hasUrl = headers['x-n8n-url']; const hasKey = headers['x-n8n-key']; + if (process.env.ENABLE_MULTI_TENANT === 'true' && !hasUrl && !hasKey) { + logger_1.logger.warn('Multi-tenant request missing tenant headers', { + hasUrl: false, + hasKey: false + }); + res.status(400).json({ + jsonrpc: '2.0', + error: { + code: -32602, + message: 'Multi-tenant headers required' + }, + id: req.body?.id ?? null + }); + return; + } if (hasUrl || hasKey) { const candidate = { n8nApiUrl: hasUrl || undefined,
dist/http-server-single-session.js.map+1 −1 modified@@ -1 +1 @@ -{"version":3,"file":"http-server-single-session.js","sourceRoot":"","sources":["../src/http-server-single-session.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"http-server-single-session.js","sourceRoot":"","sources":["../src/http-server-single-session.ts"],"names":[],"mappings":"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 ... [truncated]
dist/mcp/handlers-n8n-manager.d.ts.map+1 −1 modified@@ -1 +1 @@ -{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"} \ No newline at end of file
dist/mcp/handlers-n8n-manager.js+22 −9 modified@@ -155,6 +155,10 @@ function getN8nApiClient(context) { } return null; } + if (process.env.ENABLE_MULTI_TENANT === 'true') { + logger_1.logger.warn('Refusing env-credential fallback in multi-tenant mode'); + return null; + } logger_1.logger.info('Falling back to environment configuration for n8n API client'); const config = (0, n8n_api_1.getN8nApiConfig)(); if (!config) { @@ -182,6 +186,16 @@ function ensureApiConfigured(context) { } return client; } +function resolveN8nApiConfigForResponse(context) { + const fromContext = context ? (0, n8n_api_1.getN8nApiConfigFromContext)(context) : null; + if (fromContext) { + return fromContext; + } + if (process.env.ENABLE_MULTI_TENANT === 'true') { + return null; + } + return (0, n8n_api_1.getN8nApiConfig)(); +} function tryParseJson(val) { if (typeof val !== 'string') return val; @@ -1256,7 +1270,7 @@ async function handleHealthCheck(context) { instanceId: health.instanceId, n8nVersion: health.n8nVersion, features: health.features, - apiUrl: (0, n8n_api_1.getN8nApiConfig)()?.baseUrl, + apiUrl: resolveN8nApiConfigForResponse(context)?.baseUrl, mcpVersion, supportedN8nVersion, versionCheck: { @@ -1307,7 +1321,7 @@ async function handleHealthCheck(context) { error: (0, n8n_errors_1.getUserFriendlyErrorMessage)(error), code: error.code, details: { - apiUrl: (0, n8n_api_1.getN8nApiConfig)()?.baseUrl, + apiUrl: resolveN8nApiConfigForResponse(context)?.baseUrl, hint: 'Check if n8n is running and API is enabled', troubleshooting: [ '1. Verify n8n instance is running', @@ -1492,17 +1506,18 @@ async function handleDiagnostic(request, context) { const mcpMode = process.env.MCP_MODE || 'stdio'; const isDocker = process.env.IS_DOCKER === 'true'; const cloudPlatform = detectCloudPlatform(); + const isMultiTenant = process.env.ENABLE_MULTI_TENANT === 'true'; const envVars = { - N8N_API_URL: process.env.N8N_API_URL || null, - N8N_API_KEY: process.env.N8N_API_KEY ? '***configured***' : null, + N8N_API_URL: isMultiTenant ? null : (process.env.N8N_API_URL || null), + N8N_API_KEY: isMultiTenant ? null : (process.env.N8N_API_KEY ? '***configured***' : null), NODE_ENV: process.env.NODE_ENV || 'production', MCP_MODE: mcpMode, isDocker, cloudPlatform, nodeVersion: process.version, platform: process.platform }; - const apiConfig = (0, n8n_api_1.getN8nApiConfig)(); + const apiConfig = resolveN8nApiConfigForResponse(context); const apiConfigured = apiConfig !== null; const apiClient = getN8nApiClient(context); let apiStatus = { @@ -1951,7 +1966,7 @@ async function handleDeployTemplate(args, templateService, repository, context) connections: workflow.connections, settings: workflow.settings || { executionOrder: 'v1' } }); - const apiConfig = context ? (0, n8n_api_1.getN8nApiConfigFromContext)(context) : (0, n8n_api_1.getN8nApiConfig)(); + const apiConfig = resolveN8nApiConfigForResponse(context); const baseUrl = apiConfig?.baseUrl?.replace('/api/v1', '') || ''; let fixesApplied = []; let fixSummary = ''; @@ -2623,9 +2638,7 @@ async function handleAuditInstance(args, context) { } } const totalMs = Date.now() - totalStart; - const apiConfig = context?.n8nApiUrl - ? { baseUrl: context.n8nApiUrl } - : (0, n8n_api_1.getN8nApiConfig)(); + const apiConfig = resolveN8nApiConfigForResponse(context); const instanceUrl = apiConfig?.baseUrl || 'unknown'; const report = (0, audit_report_builder_1.buildAuditReport)({ builtinAudit,
dist/mcp/handlers-n8n-manager.js.map+1 −1 modifieddist/triggers/handlers/base-handler.d.ts.map+1 −1 modified@@ -1 +1 @@ -{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/triggers/handlers/base-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EACL,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAKlB,MAAM,MAAM,yBAAyB,GAAG,KACtC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,eAAe,KACtB,kBAAkB,CAAC;AAUxB,8BAAsB,kBAAkB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IACpF,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAC/B,SAAS,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAGpC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG3C,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC;IAG3D,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAElC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe;IAS3D,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC;IAW3B,QAAQ,CAAC,OAAO,CACd,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,eAAe,CAAC;IAK3B,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,SAAS;IAgB1C,SAAS,CAAC,SAAS,IAAI,MAAM,GAAG,SAAS;IAazC,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,eAAe;IAmBlB,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,eAAe;CAenB"} \ No newline at end of file +{"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/triggers/handlers/base-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EACL,WAAW,EACX,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAKlB,MAAM,MAAM,yBAAyB,GAAG,KACtC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,eAAe,KACtB,kBAAkB,CAAC;AAUxB,8BAAsB,kBAAkB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IACpF,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAC/B,SAAS,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAGpC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG3C,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC;IAG3D,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAElC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe;IAS3D,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC;IAW3B,QAAQ,CAAC,OAAO,CACd,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,eAAe,CAAC;IAK3B,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,SAAS;IAsB1C,SAAS,CAAC,SAAS,IAAI,MAAM,GAAG,SAAS;IAkBzC,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,eAAe;IAmBlB,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,eAAe;CAenB"} \ No newline at end of file
dist/triggers/handlers/base-handler.js+6 −0 modified@@ -14,6 +14,9 @@ class BaseTriggerHandler { if (this.context?.n8nApiUrl) { return this.context.n8nApiUrl.replace(/\/api\/v1\/?$/, ''); } + if (process.env.ENABLE_MULTI_TENANT === 'true') { + return undefined; + } const config = (0, n8n_api_1.getN8nApiConfig)(); if (config?.baseUrl) { return config.baseUrl.replace(/\/api\/v1\/?$/, ''); @@ -24,6 +27,9 @@ class BaseTriggerHandler { if (this.context?.n8nApiKey) { return this.context.n8nApiKey; } + if (process.env.ENABLE_MULTI_TENANT === 'true') { + return undefined; + } const config = (0, n8n_api_1.getN8nApiConfig)(); return config?.apiKey; }
dist/triggers/handlers/base-handler.js.map+1 −1 modified@@ -1 +1 @@ -{"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/triggers/handlers/base-handler.ts"],"names":[],"mappings":";;;AAQA,kDAAuD;AAyBvD,MAAsB,kBAAkB;IAatC,YAAY,MAAoB,EAAE,OAAyB;QACzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAMD,QAAQ,CAAC,KAAc;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAkBS,UAAU;QAElB,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QACjC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAKS,SAAS;QAEjB,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAChC,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QACjC,OAAO,MAAM,EAAE,MAAM,CAAC;IACxB,CAAC;IAKS,iBAAiB,CACzB,MAAe,EACf,KAAQ,EACR,SAAiB,EACjB,KAAgC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE;gBACR,QAAQ;aACT;YACD,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;IAKS,aAAa,CACrB,KAAuB,EACvB,KAAa,EACb,SAAiB,EACjB,KAAgC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK;YACL,QAAQ,EAAE;gBACR,QAAQ;aACT;YACD,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;CACF;AAnHD,gDAmHC"} \ No newline at end of file +{"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/triggers/handlers/base-handler.ts"],"names":[],"mappings":";;;AAQA,kDAAuD;AAyBvD,MAAsB,kBAAkB;IAatC,YAAY,MAAoB,EAAE,OAAyB;QACzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAMD,QAAQ,CAAC,KAAc;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAkBS,UAAU;QAElB,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;QAID,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QACjC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAKS,SAAS;QAEjB,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAChC,CAAC;QAGD,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QACjC,OAAO,MAAM,EAAE,MAAM,CAAC;IACxB,CAAC;IAKS,iBAAiB,CACzB,MAAe,EACf,KAAQ,EACR,SAAiB,EACjB,KAAgC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE;gBACR,QAAQ;aACT;YACD,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;IAKS,aAAa,CACrB,KAAuB,EACvB,KAAa,EACb,SAAiB,EACjB,KAAgC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK;YACL,QAAQ,EAAE;gBACR,QAAQ;aACT;YACD,GAAG,KAAK;SACT,CAAC;IACJ,CAAC;CACF;AA9HD,gDA8HC"} \ No newline at end of file
.env.example+4 −1 modified@@ -127,7 +127,10 @@ AUTH_TOKEN=your-secure-token-here # ========================= # Enable multi-tenant mode for dynamic instance support # When enabled, n8n API tools will be available for all sessions, -# and instance configuration will be determined from HTTP headers +# and instance configuration will be determined from HTTP headers. +# Requests MUST supply both x-n8n-url and x-n8n-key headers; requests +# without complete tenant headers are rejected with HTTP 400. The +# process-level N8N_API_URL / N8N_API_KEY are NOT used as a fallback. # Default: false (single-tenant mode using environment variables) ENABLE_MULTI_TENANT=false
package.json+1 −1 modified@@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.51.1", + "version": "2.51.2", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "types": "dist/index.d.ts",
package-lock.json+2 −2 modified@@ -1,12 +1,12 @@ { "name": "n8n-mcp", - "version": "2.51.1", + "version": "2.51.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "n8n-mcp", - "version": "2.51.1", + "version": "2.51.2", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "1.28.0",
src/http-server-single-session.ts+19 −0 modified@@ -1324,6 +1324,25 @@ export class SingleSessionHTTPServer { const hasUrl = headers['x-n8n-url']; const hasKey = headers['x-n8n-key']; + // SECURITY (GHSA-jxx9-px88-pj69): in multi-tenant mode, both headers + // must be present. Falling through with no context would silently use + // the operator's process-level N8N_API_KEY for the tenant's request. + if (process.env.ENABLE_MULTI_TENANT === 'true' && !hasUrl && !hasKey) { + logger.warn('Multi-tenant request missing tenant headers', { + hasUrl: false, + hasKey: false + }); + res.status(400).json({ + jsonrpc: '2.0', + error: { + code: -32602, + message: 'Multi-tenant headers required' + }, + id: req.body?.id ?? null + }); + return; + } + if (hasUrl || hasKey) { // Create context with proper type handling const candidate: InstanceContext = {
src/mcp/handlers-n8n-manager.ts+41 −10 modified@@ -332,6 +332,14 @@ export function getN8nApiClient(context?: InstanceContext): N8nApiClient | null return null; } + // SECURITY (GHSA-jxx9-px88-pj69): never fall back to process-level credentials + // when multi-tenant mode is enabled. A missing or incomplete tenant context + // must result in no client, not the operator's N8N_API_KEY. + if (process.env.ENABLE_MULTI_TENANT === 'true') { + logger.warn('Refusing env-credential fallback in multi-tenant mode'); + return null; + } + // Fall back to default singleton from environment logger.info('Falling back to environment configuration for n8n API client'); const config = getN8nApiConfig(); @@ -372,6 +380,27 @@ function ensureApiConfigured(context?: InstanceContext): N8nApiClient { return client; } +/** + * Resolve the n8n API config to surface in a tool response (apiUrl, + * baseUrl for workflow links, etc.). Prefers the per-request tenant + * context; falls back to the process-env config only in single-tenant + * mode. + * + * SECURITY (GHSA-jxx9-px88-pj69): in multi-tenant mode this never returns + * the operator's env config, so handler responses cannot disclose the + * operator's apiUrl to a tenant whose context was missing or incomplete. + */ +function resolveN8nApiConfigForResponse(context?: InstanceContext) { + const fromContext = context ? getN8nApiConfigFromContext(context) : null; + if (fromContext) { + return fromContext; + } + if (process.env.ENABLE_MULTI_TENANT === 'true') { + return null; + } + return getN8nApiConfig(); +} + // MCP transports may serialize JSON objects/arrays as strings. // Parse them back, but return the original value on failure so Zod reports a proper type error. export function tryParseJson(val: unknown): unknown { @@ -1719,7 +1748,7 @@ export async function handleHealthCheck(context?: InstanceContext): Promise<McpT instanceId: health.instanceId, n8nVersion: health.n8nVersion, features: health.features, - apiUrl: getN8nApiConfig()?.baseUrl, + apiUrl: resolveN8nApiConfigForResponse(context)?.baseUrl, mcpVersion, supportedN8nVersion, versionCheck: { @@ -1779,7 +1808,7 @@ export async function handleHealthCheck(context?: InstanceContext): Promise<McpT error: getUserFriendlyErrorMessage(error), code: error.code, details: { - apiUrl: getN8nApiConfig()?.baseUrl, + apiUrl: resolveN8nApiConfigForResponse(context)?.baseUrl, hint: 'Check if n8n is running and API is enabled', troubleshooting: [ '1. Verify n8n instance is running', @@ -1983,10 +2012,14 @@ export async function handleDiagnostic(request: any, context?: InstanceContext): const isDocker = process.env.IS_DOCKER === 'true'; const cloudPlatform = detectCloudPlatform(); - // Check environment variables + // Check environment variables. SECURITY (GHSA-jxx9-px88-pj69): in + // multi-tenant mode the operator's env credentials are not part of the + // tenant's view of the system, so we mask them out of the diagnostic + // payload rather than letting them leak through `environment.*`. + const isMultiTenant = process.env.ENABLE_MULTI_TENANT === 'true'; const envVars = { - N8N_API_URL: process.env.N8N_API_URL || null, - N8N_API_KEY: process.env.N8N_API_KEY ? '***configured***' : null, + N8N_API_URL: isMultiTenant ? null : (process.env.N8N_API_URL || null), + N8N_API_KEY: isMultiTenant ? null : (process.env.N8N_API_KEY ? '***configured***' : null), NODE_ENV: process.env.NODE_ENV || 'production', MCP_MODE: mcpMode, isDocker, @@ -1996,7 +2029,7 @@ export async function handleDiagnostic(request: any, context?: InstanceContext): }; // Check API configuration - const apiConfig = getN8nApiConfig(); + const apiConfig = resolveN8nApiConfigForResponse(context); const apiConfigured = apiConfig !== null; const apiClient = getN8nApiClient(context); @@ -2567,7 +2600,7 @@ export async function handleDeployTemplate( }); // Get base URL for workflow link - const apiConfig = context ? getN8nApiConfigFromContext(context) : getN8nApiConfig(); + const apiConfig = resolveN8nApiConfigForResponse(context); const baseUrl = apiConfig?.baseUrl?.replace('/api/v1', '') || ''; // Auto-fix common issues after deployment (expression format, etc.) @@ -3370,9 +3403,7 @@ export async function handleAuditInstance(args: unknown, context?: InstanceConte const totalMs = Date.now() - totalStart; // Build the API URL for the report (mask the key) - const apiConfig = context?.n8nApiUrl - ? { baseUrl: context.n8nApiUrl } - : getN8nApiConfig(); + const apiConfig = resolveN8nApiConfigForResponse(context); const instanceUrl = apiConfig?.baseUrl || 'unknown'; // Build unified markdown report
src/triggers/handlers/base-handler.ts+11 −0 modified@@ -78,6 +78,12 @@ export abstract class BaseTriggerHandler<T extends BaseTriggerInput = BaseTrigge if (this.context?.n8nApiUrl) { return this.context.n8nApiUrl.replace(/\/api\/v1\/?$/, ''); } + // SECURITY (GHSA-jxx9-px88-pj69): in multi-tenant mode, refuse to fall + // back to the operator's env URL. A handler running without a tenant + // context must not surface the operator's instance URL. + if (process.env.ENABLE_MULTI_TENANT === 'true') { + return undefined; + } // Fallback to environment config const config = getN8nApiConfig(); if (config?.baseUrl) { @@ -94,6 +100,11 @@ export abstract class BaseTriggerHandler<T extends BaseTriggerInput = BaseTrigge if (this.context?.n8nApiKey) { return this.context.n8nApiKey; } + // SECURITY (GHSA-jxx9-px88-pj69): in multi-tenant mode, refuse to fall + // back to the operator's env API key. + if (process.env.ENABLE_MULTI_TENANT === 'true') { + return undefined; + } // Fallback to environment config const config = getN8nApiConfig(); return config?.apiKey;
tests/unit/http-server/ssrf-gate.test.ts+63 −0 modified@@ -382,6 +382,69 @@ describe('HTTP Server instance URL validation (GHSA-4ggg-h7ph-26qr)', () => { }); }); + describe('GHSA-jxx9-px88-pj69 — multi-tenant header omission', () => { + beforeEach(() => { + process.env.ENABLE_MULTI_TENANT = 'true'; + // Process-level credentials must not leak to tenants even when set. + process.env.N8N_API_URL = 'https://operator-n8n.example.com'; + process.env.N8N_API_KEY = 'operator-api-key'; + }); + + it('rejects request with no tenant headers in multi-tenant mode', async () => { + server = new SingleSessionHTTPServer(); + await server.start(); + + const handler = findHandler('post', '/mcp'); + const { req, res } = createMockReqRes(); + req.headers = { authorization: `Bearer ${TEST_AUTH_TOKEN}` }; + await handler(req, res); + + expect(res.status).toHaveBeenCalledWith(400); + const jsonArgs = (res.json as any).mock.calls[0][0]; + expect(jsonArgs).toMatchObject({ + jsonrpc: '2.0', + error: { + code: -32602, + message: 'Multi-tenant headers required', + }, + }); + }); + + it('rejects with no headers even when partial-context validation would pass', async () => { + // Defense-in-depth: the no-headers gate runs before validateInstanceContext, + // so an attacker cannot avoid 400 by also omitting other optional headers. + server = new SingleSessionHTTPServer(); + await server.start(); + + const handler = findHandler('post', '/mcp'); + const { req, res } = createMockReqRes(); + req.headers = { + authorization: `Bearer ${TEST_AUTH_TOKEN}`, + 'x-instance-id': 'attacker-only-instance-id', + }; + await handler(req, res); + + expect(res.status).toHaveBeenCalledWith(400); + }); + + it('allows request with both tenant headers in multi-tenant mode', async () => { + server = new SingleSessionHTTPServer(); + await server.start(); + + const handler = findHandler('post', '/mcp'); + const { req, res } = createMockReqRes(); + req.headers = { + authorization: `Bearer ${TEST_AUTH_TOKEN}`, + 'x-n8n-url': 'https://tenant-n8n.example.com', + 'x-n8n-key': 'tenant-api-key', + }; + await handler(req, res); + + // Must not be a 400; the transport mock then returns 200. + expect(res.status).not.toHaveBeenCalledWith(400); + }); + }); + describe('library API path', () => { it('rejects malicious context passed directly to handleRequest', async () => { vi.mocked(dns.lookup).mockResolvedValue({ address: '169.254.169.254', family: 4 } as any);
tests/unit/mcp/handlers-n8n-manager.test.ts+95 −3 modified@@ -205,19 +205,19 @@ describe('handlers-n8n-manager', () => { // First call with initial config const client1 = handlers.getN8nApiClient(); expect(N8nApiClient).toHaveBeenCalledTimes(1); - + // Change the config URL vi.mocked(getN8nApiConfig).mockReturnValue({ baseUrl: 'https://different.test.com', apiKey: 'test-key', timeout: 30000, maxRetries: 3, }); - + // Second call should create a new client const client2 = handlers.getN8nApiClient(); expect(N8nApiClient).toHaveBeenCalledTimes(2); - + // Verify the second call used the new config expect(N8nApiClient).toHaveBeenNthCalledWith(2, { baseUrl: 'https://different.test.com', @@ -226,6 +226,43 @@ describe('handlers-n8n-manager', () => { maxRetries: 3, }); }); + + describe('GHSA-jxx9-px88-pj69 — multi-tenant fail-closed', () => { + const originalMultiTenant = process.env.ENABLE_MULTI_TENANT; + + beforeEach(() => { + process.env.ENABLE_MULTI_TENANT = 'true'; + }); + + afterEach(() => { + if (originalMultiTenant === undefined) { + delete process.env.ENABLE_MULTI_TENANT; + } else { + process.env.ENABLE_MULTI_TENANT = originalMultiTenant; + } + }); + + it('returns null when called with no context in multi-tenant mode', () => { + // Env config is intentionally available; the guard must still refuse it. + const client = handlers.getN8nApiClient(); + expect(client).toBeNull(); + expect(N8nApiClient).not.toHaveBeenCalled(); + }); + + it('returns null when called with empty context in multi-tenant mode', () => { + const client = handlers.getN8nApiClient({}); + expect(client).toBeNull(); + expect(N8nApiClient).not.toHaveBeenCalled(); + }); + + it('returns null when called with context missing the API key', () => { + const client = handlers.getN8nApiClient({ + n8nApiUrl: 'https://tenant.example.com', + }); + expect(client).toBeNull(); + expect(N8nApiClient).not.toHaveBeenCalled(); + }); + }); }); describe('handleCreateWorkflow', () => { @@ -1177,6 +1214,61 @@ describe('handlers-n8n-manager', () => { }); }); + describe('GHSA-jxx9-px88-pj69 — handler responses do not leak operator URL', () => { + const originalMultiTenant = process.env.ENABLE_MULTI_TENANT; + + beforeEach(() => { + process.env.ENABLE_MULTI_TENANT = 'true'; + }); + + afterEach(() => { + if (originalMultiTenant === undefined) { + delete process.env.ENABLE_MULTI_TENANT; + } else { + process.env.ENABLE_MULTI_TENANT = originalMultiTenant; + } + }); + + it('handleHealthCheck without context returns no apiUrl in multi-tenant mode', async () => { + // getN8nApiClient returns null in multi-tenant mode + no context, + // so ensureApiConfigured throws and the response goes through the + // generic-error branch (no apiUrl field at all). + const result = await handlers.handleHealthCheck(); + expect(result.success).toBe(false); + // Must not surface the env config's baseUrl in the error. + const serialized = JSON.stringify(result); + expect(serialized).not.toContain('https://n8n.test.com'); + }); + + it('handleDiagnostic without context reports apiConfiguration as not configured', async () => { + process.env.N8N_API_URL = 'https://n8n.test.com'; + process.env.N8N_API_KEY = 'test-key'; + + const result = await handlers.handleDiagnostic({ params: { arguments: {} } }); + + expect(result.success).toBe(true); + expect(result.data).toMatchObject({ + apiConfiguration: { + configured: false, + config: null, + }, + environment: { + N8N_API_URL: null, + N8N_API_KEY: null, + }, + }); + // Defense-in-depth: scan the whole response body, not just one + // section, so a future field that surfaces the operator URL is + // caught even if it lives outside apiConfiguration. + const serialized = JSON.stringify(result.data); + expect(serialized).not.toContain('https://n8n.test.com'); + expect(serialized).not.toContain('***configured***'); + + process.env.N8N_API_URL = undefined as any; + process.env.N8N_API_KEY = undefined as any; + }); + }); + describe('Error handling', () => { it('should handle authentication errors', async () => { const authError = new N8nAuthenticationError('Invalid API key');
tests/unit/triggers/handlers/base-handler.test.ts+49 −1 modified@@ -1,7 +1,7 @@ /** * Unit tests for BaseTriggerHandler */ -import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; import { BaseTriggerHandler } from '../../../../src/triggers/handlers/base-handler'; import { N8nApiClient } from '../../../../src/services/n8n-api-client'; import { InstanceContext } from '../../../../src/types/instance-context'; @@ -193,6 +193,54 @@ describe('BaseTriggerHandler', () => { }); }); + describe('GHSA-jxx9-px88-pj69 — multi-tenant env fallback refused', () => { + const originalMultiTenant = process.env.ENABLE_MULTI_TENANT; + + beforeEach(() => { + process.env.ENABLE_MULTI_TENANT = 'true'; + }); + + afterEach(() => { + if (originalMultiTenant === undefined) { + delete process.env.ENABLE_MULTI_TENANT; + } else { + process.env.ENABLE_MULTI_TENANT = originalMultiTenant; + } + }); + + it('getBaseUrl returns undefined when no context in multi-tenant mode', () => { + const handler = new TestHandler(mockClient); + const baseUrl = (handler as any).getBaseUrl(); + expect(baseUrl).toBeUndefined(); + }); + + it('getApiKey returns undefined when no context in multi-tenant mode', () => { + const handler = new TestHandler(mockClient); + const apiKey = (handler as any).getApiKey(); + expect(apiKey).toBeUndefined(); + }); + + it('getBaseUrl still returns context URL in multi-tenant mode', () => { + const context: InstanceContext = { + n8nApiUrl: 'https://tenant.n8n.com/api/v1', + n8nApiKey: 'tenant-key', + sessionId: 'tenant-session', + }; + const handler = new TestHandler(mockClient, context); + expect((handler as any).getBaseUrl()).toBe('https://tenant.n8n.com'); + }); + + it('getApiKey still returns context key in multi-tenant mode', () => { + const context: InstanceContext = { + n8nApiUrl: 'https://tenant.n8n.com/api/v1', + n8nApiKey: 'tenant-key', + sessionId: 'tenant-session', + }; + const handler = new TestHandler(mockClient, context); + expect((handler as any).getApiKey()).toBe('tenant-key'); + }); + }); + describe('normalizeResponse', () => { it('should create normalized success response', () => { const handler = new TestHandler(mockClient);
Vulnerability mechanics
Synthesis attempt was rejected by the grounding validator. Re-run pending.
References
4News mentions
0No linked articles in our index yet.