VYPR
High severity8.1GHSA Advisory· Published May 18, 2026

n8n-MCP: Multi-tenant MCP requests fall back to process-level n8n credentials when tenant headers are absent or incomplete

CVE-2026-45707

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 -32602 before 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, and n8n_audit_instance so 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 own N8N_API_URL / N8N_API_KEY. This removes the affected code path entirely.
  • Reject malformed requests at a proxy. Require both x-n8n-url and x-n8n-key headers 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_KEY with 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

Patches

1
853015d0897b

Merge commit from fork

https://github.com/czlonkowski/n8n-mcpRomuald CzłonkowskiMay 11, 2026Fixed in 2.51.2via ghsa
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 modified
  • dist/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

4

News mentions

0

No linked articles in our index yet.