VYPR
High severity8.5NVD Advisory· Published Apr 9, 2026· Updated Apr 20, 2026

CVE-2026-39974

CVE-2026-39974

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.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
n8n-mcpnpm
< 2.47.42.47.4

Affected products

1
  • cpe:2.3:a:n8n-mcp:n8n-mcp:*:*:*:*:*:*:*:*
    Range: <2.47.4

Patches

1
d9d847f23092

Merge commit from fork

https://github.com/czlonkowski/n8n-mcpRomuald CzłonkowskiApr 8, 2026via ghsa
28 files changed · +1067 74
  • 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.47.4] - 2026-04-08
    +
    +### Security
    +
    +- Fix authenticated SSRF in multi-tenant header handling (GHSA-4ggg-h7ph-26qr). Reported by Eresus Security Research Team.
    +
    +Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
    +
     ## [2.47.3] - 2026-04-08
     
     ### 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;AAoB9B,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;YAyCb,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;YAsSF,gBAAgB;IA+C9B,OAAO,CAAC,gBAAgB;IASlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAynBtB,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;IAoEpC,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;AAoB9B,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;YAyCb,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;YA6TF,gBAAgB;IA+C9B,OAAO,CAAC,gBAAgB;IASlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkoBtB,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+87 24 modified
    @@ -1,5 +1,38 @@
     #!/usr/bin/env node
     "use strict";
    +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    +    if (k2 === undefined) k2 = k;
    +    var desc = Object.getOwnPropertyDescriptor(m, k);
    +    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
    +      desc = { enumerable: true, get: function() { return m[k]; } };
    +    }
    +    Object.defineProperty(o, k2, desc);
    +}) : (function(o, m, k, k2) {
    +    if (k2 === undefined) k2 = k;
    +    o[k2] = m[k];
    +}));
    +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    +    Object.defineProperty(o, "default", { enumerable: true, value: v });
    +}) : function(o, v) {
    +    o["default"] = v;
    +});
    +var __importStar = (this && this.__importStar) || (function () {
    +    var ownKeys = function(o) {
    +        ownKeys = Object.getOwnPropertyNames || function (o) {
    +            var ar = [];
    +            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
    +            return ar;
    +        };
    +        return ownKeys(o);
    +    };
    +    return function (mod) {
    +        if (mod && mod.__esModule) return mod;
    +        var result = {};
    +        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
    +        __setModuleDefault(result, mod);
    +        return result;
    +    };
    +})();
     var __importDefault = (this && this.__importDefault) || function (mod) {
         return (mod && mod.__esModule) ? mod : { "default": mod };
     };
    @@ -303,6 +336,27 @@ class SingleSessionHTTPServer {
             const startTime = Date.now();
             return this.consoleManager.wrapOperation(async () => {
                 try {
    +                if (instanceContext?.n8nApiUrl) {
    +                    const { SSRFProtection } = await Promise.resolve().then(() => __importStar(require('./utils/ssrf-protection')));
    +                    const ssrfResult = await SSRFProtection.validateWebhookUrl(instanceContext.n8nApiUrl);
    +                    if (!ssrfResult.valid) {
    +                        logger_1.logger.warn('SSRF protection blocked instance context URL', {
    +                            reason: ssrfResult.reason,
    +                            instanceId: instanceContext.instanceId
    +                        });
    +                        if (!res.headersSent) {
    +                            res.status(400).json({
    +                                jsonrpc: '2.0',
    +                                error: {
    +                                    code: -32602,
    +                                    message: 'Invalid instance configuration'
    +                                },
    +                                id: req.body?.id ?? null
    +                            });
    +                        }
    +                        return;
    +                    }
    +                }
                     const sessionId = req.headers['mcp-session-id'];
                     const isInitialize = req.body ? (0, types_js_1.isInitializeRequest)(req.body) : false;
                     logger_1.logger.info('handleRequest: Processing MCP request - SDK PATTERN', {
    @@ -954,35 +1008,44 @@ class SingleSessionHTTPServer {
                 logger_1.logger.info('Authentication successful - proceeding to handleRequest', {
                     activeSessions: this.getActiveSessionCount()
                 });
    -            const instanceContext = (() => {
    +            let instanceContext;
    +            {
                     const headers = extractMultiTenantHeaders(req);
                     const hasUrl = headers['x-n8n-url'];
                     const hasKey = headers['x-n8n-key'];
    -                if (!hasUrl && !hasKey)
    -                    return undefined;
    -                const context = {
    -                    n8nApiUrl: hasUrl || undefined,
    -                    n8nApiKey: hasKey || undefined,
    -                    instanceId: headers['x-instance-id'] || undefined,
    -                    sessionId: headers['x-session-id'] || undefined
    -                };
    -                if (req.headers['user-agent'] || req.ip) {
    -                    context.metadata = {
    -                        userAgent: req.headers['user-agent'],
    -                        ip: req.ip
    +                if (hasUrl || hasKey) {
    +                    const candidate = {
    +                        n8nApiUrl: hasUrl || undefined,
    +                        n8nApiKey: hasKey || undefined,
    +                        instanceId: headers['x-instance-id'] || undefined,
    +                        sessionId: headers['x-session-id'] || undefined
                         };
    +                    if (req.headers['user-agent'] || req.ip) {
    +                        candidate.metadata = {
    +                            userAgent: req.headers['user-agent'],
    +                            ip: req.ip
    +                        };
    +                    }
    +                    const validation = (0, instance_context_1.validateInstanceContext)(candidate);
    +                    if (!validation.valid) {
    +                        logger_1.logger.warn('Invalid instance context from headers', {
    +                            errors: validation.errors,
    +                            hasUrl: !!hasUrl,
    +                            hasKey: !!hasKey
    +                        });
    +                        res.status(400).json({
    +                            jsonrpc: '2.0',
    +                            error: {
    +                                code: -32602,
    +                                message: 'Invalid instance configuration'
    +                            },
    +                            id: req.body?.id ?? null
    +                        });
    +                        return;
    +                    }
    +                    instanceContext = candidate;
                     }
    -                const validation = (0, instance_context_1.validateInstanceContext)(context);
    -                if (!validation.valid) {
    -                    logger_1.logger.warn('Invalid instance context from headers', {
    -                        errors: validation.errors,
    -                        hasUrl: !!hasUrl,
    -                        hasKey: !!hasKey
    -                    });
    -                    return undefined;
    -                }
    -                return context;
    -            })();
    +            }
                 if (instanceContext) {
                     logger_1.logger.debug('Instance context extracted from headers', {
                         hasUrl: !!instanceContext.n8nApiUrl,
    
  • 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/services/n8n-api-client.d.ts.map+1 1 modified
    @@ -1 +1 @@
    -{"version":3,"file":"n8n-api-client.d.ts","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    +{"version":3,"file":"n8n-api-client.d.ts","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    
  • dist/services/n8n-api-client.js+15 4 modified
    @@ -48,10 +48,21 @@ class N8nApiClient {
             this.versionPromise = null;
             const { baseUrl, apiKey, timeout = 30000, maxRetries = 3 } = config;
             this.maxRetries = maxRetries;
    -        this.baseUrl = baseUrl;
    -        const apiUrl = baseUrl.endsWith('/api/v1')
    -            ? baseUrl
    -            : `${baseUrl.replace(/\/$/, '')}/api/v1`;
    +        let normalizedBase;
    +        try {
    +            const parsed = new URL(baseUrl);
    +            parsed.hash = '';
    +            parsed.username = '';
    +            parsed.password = '';
    +            normalizedBase = parsed.toString().replace(/\/$/, '');
    +        }
    +        catch {
    +            normalizedBase = baseUrl;
    +        }
    +        this.baseUrl = normalizedBase;
    +        const apiUrl = normalizedBase.endsWith('/api/v1')
    +            ? normalizedBase
    +            : `${normalizedBase}/api/v1`;
             this.client = axios_1.default.create({
                 baseURL: apiUrl,
                 timeout,
    
  • dist/services/n8n-api-client.js.map+1 1 modified
    @@ -1 +1 @@
    -{"version":3,"file":"n8n-api-client.js","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    +{"version":3,"file":"n8n-api-client.js","sourceRoot":"","sources":["../../src/services/n8n-api-client.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    
  • dist/types/instance-context.d.ts.map+1 1 modified
    @@ -1 +1 @@
    -{"version":3,"file":"instance-context.d.ts","sourceRoot":"","sources":["../../src/types/instance-context.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAK9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAM1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAsED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,eAAe,CAuBlE;AAMD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG;IACjE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAgEA"}
    \ No newline at end of file
    +{"version":3,"file":"instance-context.d.ts","sourceRoot":"","sources":["../../src/types/instance-context.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAK9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAM1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAsED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,eAAe,CAuBlE;AAMD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG;IACjE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAsEA"}
    \ No newline at end of file
    
  • dist/types/instance-context.js+7 0 modified
    @@ -2,6 +2,7 @@
     Object.defineProperty(exports, "__esModule", { value: true });
     exports.isInstanceContext = isInstanceContext;
     exports.validateInstanceContext = validateInstanceContext;
    +const ssrf_protection_1 = require("../utils/ssrf-protection");
     function isValidUrl(url) {
         try {
             const parsed = new URL(url);
    @@ -77,6 +78,12 @@ function validateInstanceContext(context) {
                     errors.push(`Invalid n8nApiUrl: URL format is malformed or incomplete`);
                 }
             }
    +        else {
    +            const ssrf = ssrf_protection_1.SSRFProtection.validateUrlSync(context.n8nApiUrl);
    +            if (!ssrf.valid) {
    +                errors.push(`Invalid n8nApiUrl: ${ssrf.reason}`);
    +            }
    +        }
         }
         if (context.n8nApiKey !== undefined) {
             if (context.n8nApiKey === '') {
    
  • dist/types/instance-context.js.map+1 1 modified
    @@ -1 +1 @@
    -{"version":3,"file":"instance-context.js","sourceRoot":"","sources":["../../src/types/instance-context.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    +{"version":3,"file":"instance-context.js","sourceRoot":"","sources":["../../src/types/instance-context.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    
  • dist/utils/ssrf-protection.d.ts+4 0 modified
    @@ -3,5 +3,9 @@ export declare class SSRFProtection {
             valid: boolean;
             reason?: string;
         }>;
    +    static validateUrlSync(urlString: string): {
    +        valid: boolean;
    +        reason?: string;
    +    };
     }
     //# sourceMappingURL=ssrf-protection.d.ts.map
    \ No newline at end of file
    
  • dist/utils/ssrf-protection.d.ts.map+1 1 modified
    @@ -1 +1 @@
    -{"version":3,"file":"ssrf-protection.d.ts","sourceRoot":"","sources":["../../src/utils/ssrf-protection.ts"],"names":[],"mappings":"AAoDA,qBAAa,cAAc;WAoBZ,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1D,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAC;CA+GH"}
    \ No newline at end of file
    +{"version":3,"file":"ssrf-protection.d.ts","sourceRoot":"","sources":["../../src/utils/ssrf-protection.ts"],"names":[],"mappings":"AAoDA,qBAAa,cAAc;WAoBZ,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1D,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAC;IA2HF,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAkD/E"}
    \ No newline at end of file
    
  • dist/utils/ssrf-protection.js+41 0 modified
    @@ -113,6 +113,47 @@ class SSRFProtection {
                 return { valid: false, reason: 'Invalid URL format' };
             }
         }
    +    static validateUrlSync(urlString) {
    +        if (typeof urlString !== 'string' || urlString.includes('#')) {
    +            return { valid: false, reason: 'URL fragments are not allowed' };
    +        }
    +        let url;
    +        try {
    +            url = new url_1.URL(urlString);
    +        }
    +        catch {
    +            return { valid: false, reason: 'Invalid URL format' };
    +        }
    +        if (!['http:', 'https:'].includes(url.protocol)) {
    +            return { valid: false, reason: 'Invalid protocol. Only HTTP/HTTPS allowed.' };
    +        }
    +        if (url.username !== '' || url.password !== '') {
    +            return { valid: false, reason: 'Userinfo in URL is not allowed' };
    +        }
    +        let hostname = url.hostname.toLowerCase();
    +        if (hostname.startsWith('[') && hostname.endsWith(']')) {
    +            hostname = hostname.slice(1, -1);
    +        }
    +        if (CLOUD_METADATA.has(hostname)) {
    +            return { valid: false, reason: 'Cloud metadata endpoint blocked' };
    +        }
    +        const mode = (process.env.WEBHOOK_SECURITY_MODE || 'strict');
    +        if (mode === 'permissive') {
    +            return { valid: true };
    +        }
    +        if (mode === 'strict' && LOCALHOST_PATTERNS.has(hostname)) {
    +            return { valid: false, reason: 'Localhost access is blocked in strict mode' };
    +        }
    +        if (PRIVATE_IP_RANGES.some(regex => regex.test(hostname))) {
    +            return {
    +                valid: false,
    +                reason: mode === 'strict'
    +                    ? 'Private IP addresses not allowed'
    +                    : 'Private IP addresses not allowed (use WEBHOOK_SECURITY_MODE=permissive if needed)'
    +            };
    +        }
    +        return { valid: true };
    +    }
     }
     exports.SSRFProtection = SSRFProtection;
     //# sourceMappingURL=ssrf-protection.js.map
    \ No newline at end of file
    
  • dist/utils/ssrf-protection.js.map+1 1 modified
    @@ -1 +1 @@
    -{"version":3,"file":"ssrf-protection.js","sourceRoot":"","sources":["../../src/utils/ssrf-protection.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    +{"version":3,"file":"ssrf-protection.js","sourceRoot":"","sources":["../../src/utils/ssrf-protection.ts"],"names":[],"mappings":"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"}
    \ No newline at end of file
    
  • package.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "n8n-mcp",
    -  "version": "2.47.3",
    +  "version": "2.47.4",
       "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.47.2",
    +  "version": "2.47.4",
       "lockfileVersion": 3,
       "requires": true,
       "packages": {
         "": {
           "name": "n8n-mcp",
    -      "version": "2.47.2",
    +      "version": "2.47.4",
           "license": "MIT",
           "dependencies": {
             "@modelcontextprotocol/sdk": "1.28.0",
    
  • package.runtime.json+1 1 modified
    @@ -1,6 +1,6 @@
     {
       "name": "n8n-mcp-runtime",
    -  "version": "2.47.3",
    +  "version": "2.47.4",
       "description": "n8n MCP Server Runtime Dependencies Only",
       "private": true,
       "dependencies": {
    
  • .secretlintignore+8 0 modified
    @@ -29,6 +29,14 @@ tests/node-storage-export.json
     tests/unit/services/credential-scanner.test.ts
     tests/unit/telemetry/telemetry-events.test.ts
     
    +# SSRF-related tests contain literal userinfo URLs (e.g. http://user:pw@host)
    +# as negative fixtures proving the validator rejects URLs with embedded basic
    +# auth. These are not real credentials — they're the inputs the code refuses.
    +tests/unit/utils/ssrf-protection.test.ts
    +tests/unit/services/n8n-api-client.test.ts
    +tests/unit/http-server/ssrf-gate.test.ts
    +tests/unit/flexible-instance-security.test.ts
    +
     # Template fixtures (user workflow JSON; any embedded credentials are
     # mock data from public n8n.io templates — scanned separately by the
     # sanitize-templates script)
    
  • src/http-server-single-session.ts+65 29 modified
    @@ -531,9 +531,32 @@ export class SingleSessionHTTPServer {
         // Wrap all operations to prevent console interference
         return this.consoleManager.wrapOperation(async () => {
           try {
    +        // SECURITY (GHSA-4ggg-h7ph-26qr): validate instance-supplied URL.
    +        if (instanceContext?.n8nApiUrl) {
    +          const { SSRFProtection } = await import('./utils/ssrf-protection');
    +          const ssrfResult = await SSRFProtection.validateWebhookUrl(instanceContext.n8nApiUrl);
    +          if (!ssrfResult.valid) {
    +            logger.warn('SSRF protection blocked instance context URL', {
    +              reason: ssrfResult.reason,
    +              instanceId: instanceContext.instanceId
    +            });
    +            if (!res.headersSent) {
    +              res.status(400).json({
    +                jsonrpc: '2.0',
    +                error: {
    +                  code: -32602,
    +                  message: 'Invalid instance configuration'
    +                },
    +                id: req.body?.id ?? null
    +              });
    +            }
    +            return;
    +          }
    +        }
    +
             const sessionId = req.headers['mcp-session-id'] as string | undefined;
             const isInitialize = req.body ? isInitializeRequest(req.body) : false;
    -        
    +
             // Log comprehensive incoming request details for debugging
             logger.info('handleRequest: Processing MCP request - SDK PATTERN', {
               requestId: req.get('x-request-id') || 'unknown',
    @@ -1354,43 +1377,52 @@ export class SingleSessionHTTPServer {
           });
     
           // Extract instance context from headers if present (for multi-tenant support)
    -      const instanceContext: InstanceContext | undefined = (() => {
    +      let instanceContext: InstanceContext | undefined;
    +      {
             // Use type-safe header extraction
             const headers = extractMultiTenantHeaders(req);
             const hasUrl = headers['x-n8n-url'];
             const hasKey = headers['x-n8n-key'];
     
    -        if (!hasUrl && !hasKey) return undefined;
    +        if (hasUrl || hasKey) {
    +          // Create context with proper type handling
    +          const candidate: InstanceContext = {
    +            n8nApiUrl: hasUrl || undefined,
    +            n8nApiKey: hasKey || undefined,
    +            instanceId: headers['x-instance-id'] || undefined,
    +            sessionId: headers['x-session-id'] || undefined
    +          };
     
    -        // Create context with proper type handling
    -        const context: InstanceContext = {
    -          n8nApiUrl: hasUrl || undefined,
    -          n8nApiKey: hasKey || undefined,
    -          instanceId: headers['x-instance-id'] || undefined,
    -          sessionId: headers['x-session-id'] || undefined
    -        };
    +          // Add metadata if available
    +          if (req.headers['user-agent'] || req.ip) {
    +            candidate.metadata = {
    +              userAgent: req.headers['user-agent'] as string | undefined,
    +              ip: req.ip
    +            };
    +          }
     
    -        // Add metadata if available
    -        if (req.headers['user-agent'] || req.ip) {
    -          context.metadata = {
    -            userAgent: req.headers['user-agent'] as string | undefined,
    -            ip: req.ip
    -          };
    -        }
    +          // SECURITY (GHSA-4ggg-h7ph-26qr): fail closed on invalid context.
    +          const validation = validateInstanceContext(candidate);
    +          if (!validation.valid) {
    +            logger.warn('Invalid instance context from headers', {
    +              errors: validation.errors,
    +              hasUrl: !!hasUrl,
    +              hasKey: !!hasKey
    +            });
    +            res.status(400).json({
    +              jsonrpc: '2.0',
    +              error: {
    +                code: -32602,
    +                message: 'Invalid instance configuration'
    +              },
    +              id: req.body?.id ?? null
    +            });
    +            return;
    +          }
     
    -        // Validate the context
    -        const validation = validateInstanceContext(context);
    -        if (!validation.valid) {
    -          logger.warn('Invalid instance context from headers', {
    -            errors: validation.errors,
    -            hasUrl: !!hasUrl,
    -            hasKey: !!hasKey
    -          });
    -          return undefined;
    +          instanceContext = candidate;
             }
    -
    -        return context;
    -      })();
    +      }
     
           // Log context extraction for debugging (only if context exists)
           if (instanceContext) {
    @@ -1661,6 +1693,10 @@ export class SingleSessionHTTPServer {
        * Restored sessions are "dormant" until a client makes a request, at which
        * point the transport and server will be initialized normally.
        *
    +   * @security Restored contexts are validated synchronously via
    +   * validateInstanceContext. Embedders are responsible for not persisting
    +   * hostnames they do not trust. See GHSA-4ggg-h7ph-26qr.
    +   *
        * @param sessions - Array of session state objects from exportSessionState()
        * @returns Number of sessions successfully restored
        *
    
  • src/services/n8n-api-client.ts+20 4 modified
    @@ -58,12 +58,28 @@ export class N8nApiClient {
         const { baseUrl, apiKey, timeout = 30000, maxRetries = 3 } = config;
     
         this.maxRetries = maxRetries;
    -    this.baseUrl = baseUrl;
    +
    +    // SECURITY (GHSA-4ggg-h7ph-26qr): defense-in-depth baseUrl normalization.
    +    let normalizedBase: string;
    +    try {
    +      const parsed = new URL(baseUrl);
    +      parsed.hash = '';
    +      parsed.username = '';
    +      parsed.password = '';
    +      normalizedBase = parsed.toString().replace(/\/$/, '');
    +    } catch {
    +      // Unparseable input falls through to raw; downstream axios call will
    +      // fail cleanly. Preserves backward compat for tests that pass
    +      // placeholder strings.
    +      normalizedBase = baseUrl;
    +    }
    +
    +    this.baseUrl = normalizedBase;
     
         // Ensure baseUrl ends with /api/v1
    -    const apiUrl = baseUrl.endsWith('/api/v1')
    -      ? baseUrl
    -      : `${baseUrl.replace(/\/$/, '')}/api/v1`;
    +    const apiUrl = normalizedBase.endsWith('/api/v1')
    +      ? normalizedBase
    +      : `${normalizedBase}/api/v1`;
     
         this.client = axios.create({
           baseURL: apiUrl,
    
  • src/types/instance-context.ts+8 0 modified
    @@ -6,6 +6,8 @@
      * backward compatibility with environment-based configuration.
      */
     
    +import { SSRFProtection } from '../utils/ssrf-protection';
    +
     export interface InstanceContext {
       /**
        * Instance-specific n8n API configuration
    @@ -147,6 +149,12 @@ export function validateInstanceContext(context: InstanceContext): {
           } catch {
             errors.push(`Invalid n8nApiUrl: URL format is malformed or incomplete`);
           }
    +    } else {
    +      // SECURITY (GHSA-4ggg-h7ph-26qr): sync URL validation.
    +      const ssrf = SSRFProtection.validateUrlSync(context.n8nApiUrl);
    +      if (!ssrf.valid) {
    +        errors.push(`Invalid n8nApiUrl: ${ssrf.reason}`);
    +      }
         }
       }
     
    
  • src/utils/ssrf-protection.ts+62 0 modified
    @@ -184,4 +184,66 @@ export class SSRFProtection {
           return { valid: false, reason: 'Invalid URL format' };
         }
       }
    +
    +  /**
    +   * Synchronous URL validation with no DNS resolution.
    +   *
    +   * Suitable for sync callers that cannot await DNS lookups. Pair with
    +   * {@link validateWebhookUrl} at async boundaries for full protection.
    +   *
    +   * @param urlString - URL to validate (raw input, not parsed)
    +   * @returns Validation result with optional reason on failure
    +   *
    +   * @security See GHSA-4ggg-h7ph-26qr.
    +   */
    +  static validateUrlSync(urlString: string): { valid: boolean; reason?: string } {
    +    if (typeof urlString !== 'string' || urlString.includes('#')) {
    +      return { valid: false, reason: 'URL fragments are not allowed' };
    +    }
    +
    +    let url: URL;
    +    try {
    +      url = new URL(urlString);
    +    } catch {
    +      return { valid: false, reason: 'Invalid URL format' };
    +    }
    +
    +    if (!['http:', 'https:'].includes(url.protocol)) {
    +      return { valid: false, reason: 'Invalid protocol. Only HTTP/HTTPS allowed.' };
    +    }
    +
    +    if (url.username !== '' || url.password !== '') {
    +      return { valid: false, reason: 'Userinfo in URL is not allowed' };
    +    }
    +
    +    let hostname = url.hostname.toLowerCase();
    +    if (hostname.startsWith('[') && hostname.endsWith(']')) {
    +      hostname = hostname.slice(1, -1);
    +    }
    +
    +    if (CLOUD_METADATA.has(hostname)) {
    +      return { valid: false, reason: 'Cloud metadata endpoint blocked' };
    +    }
    +
    +    const mode: SecurityMode = (process.env.WEBHOOK_SECURITY_MODE || 'strict') as SecurityMode;
    +
    +    if (mode === 'permissive') {
    +      return { valid: true };
    +    }
    +
    +    if (mode === 'strict' && LOCALHOST_PATTERNS.has(hostname)) {
    +      return { valid: false, reason: 'Localhost access is blocked in strict mode' };
    +    }
    +
    +    if (PRIVATE_IP_RANGES.some(regex => regex.test(hostname))) {
    +      return {
    +        valid: false,
    +        reason: mode === 'strict'
    +          ? 'Private IP addresses not allowed'
    +          : 'Private IP addresses not allowed (use WEBHOOK_SECURITY_MODE=permissive if needed)'
    +      };
    +    }
    +
    +    return { valid: true };
    +  }
     }
    
  • tests/unit/flexible-instance-security.test.ts+43 0 modified
    @@ -53,6 +53,49 @@ describe('Flexible Instance Security', () => {
               expect(validation.errors?.some(error => error.startsWith('Invalid n8nApiUrl:'))).toBe(true);
             });
           });
    +
    +      // GHSA-4ggg-h7ph-26qr regression
    +      it('should reject URL with trailing fragment', () => {
    +        const validation = validateInstanceContext({
    +          n8nApiUrl: 'http://169.254.169.254#',
    +          n8nApiKey: 'key'
    +        });
    +        expect(validation.valid).toBe(false);
    +        expect(validation.errors?.some(e => e.startsWith('Invalid n8nApiUrl:') && e.includes('fragment'))).toBe(true);
    +      });
    +
    +      it('should reject AWS metadata IP literal', () => {
    +        const validation = validateInstanceContext({
    +          n8nApiUrl: 'http://169.254.169.254',
    +          n8nApiKey: 'key'
    +        });
    +        expect(validation.valid).toBe(false);
    +        expect(validation.errors?.some(e => e.includes('Cloud metadata'))).toBe(true);
    +      });
    +
    +      it('should reject private IPv4 literal in default (strict) mode', () => {
    +        const original = process.env.WEBHOOK_SECURITY_MODE;
    +        delete process.env.WEBHOOK_SECURITY_MODE;
    +        try {
    +          const validation = validateInstanceContext({
    +            n8nApiUrl: 'http://10.0.0.1',
    +            n8nApiKey: 'key'
    +          });
    +          expect(validation.valid).toBe(false);
    +          expect(validation.errors?.some(e => e.includes('Private IP'))).toBe(true);
    +        } finally {
    +          if (original) process.env.WEBHOOK_SECURITY_MODE = original;
    +        }
    +      });
    +
    +      it('should reject URL containing userinfo', () => {
    +        const validation = validateInstanceContext({
    +          n8nApiUrl: 'http://user:pw@host.example.com',
    +          n8nApiKey: 'key'
    +        });
    +        expect(validation.valid).toBe(false);
    +        expect(validation.errors?.some(e => e.includes('Userinfo'))).toBe(true);
    +      });
         });
     
         describe('API Key Validation', () => {
    
  • tests/unit/http-server/ssrf-gate.test.ts+417 0 added
    @@ -0,0 +1,417 @@
    +/**
    + * Integration tests for URL validation in SingleSessionHTTPServer.handleRequest.
    + * Regression tests for GHSA-4ggg-h7ph-26qr.
    + *
    + * Exercises the sync and async validation layers through the real
    + * handleRequest codepath, with dns/promises mocked deterministically.
    + */
    +
    +import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
    +
    +// Mock DNS BEFORE importing anything that might load ssrf-protection.
    +vi.mock('dns/promises', () => ({
    +  lookup: vi.fn(),
    +}));
    +
    +vi.mock('../../../src/utils/logger', () => ({
    +  logger: {
    +    info: vi.fn(),
    +    error: vi.fn(),
    +    warn: vi.fn(),
    +    debug: vi.fn(),
    +  },
    +}));
    +
    +vi.mock('dotenv');
    +
    +vi.mock('../../../src/mcp/server', () => ({
    +  N8NDocumentationMCPServer: vi.fn().mockImplementation(() => ({
    +    connect: vi.fn().mockResolvedValue(undefined),
    +  })),
    +}));
    +
    +// Transport mock: if the gate allows the request through, respond 200.
    +// Tests use this as the "gate passed, transport reached" signal.
    +vi.mock('@modelcontextprotocol/sdk/server/streamableHttp.js', () => ({
    +  StreamableHTTPServerTransport: vi.fn().mockImplementation(() => ({
    +    handleRequest: vi.fn().mockImplementation(async (_req: any, res: any) => {
    +      if (!res.headersSent) {
    +        res.status(200).json({ jsonrpc: '2.0', result: { success: true }, id: 1 });
    +      }
    +    }),
    +    close: vi.fn().mockResolvedValue(undefined),
    +  })),
    +}));
    +
    +// Use vi.hoisted so the mock consoleManager exists at import-time, avoiding
    +// the TDZ when the vi.mock factory runs before the const is initialized.
    +const { mockConsoleManager } = vi.hoisted(() => ({
    +  mockConsoleManager: {
    +    wrapOperation: vi.fn().mockImplementation(async (fn: () => Promise<any>) => fn()),
    +  },
    +}));
    +
    +vi.mock('../../../src/utils/console-manager', () => ({
    +  ConsoleManager: vi.fn(() => mockConsoleManager),
    +}));
    +
    +vi.mock('../../../src/utils/url-detector', () => ({
    +  getStartupBaseUrl: vi.fn(() => 'http://localhost:3000'),
    +  formatEndpointUrls: vi.fn(() => ({ health: '', mcp: '' })),
    +  detectBaseUrl: vi.fn(() => 'http://localhost:3000'),
    +}));
    +
    +vi.mock('../../../src/utils/version', () => ({
    +  PROJECT_VERSION: '2.47.4',
    +}));
    +
    +const mockHandlers: Record<string, any[]> = {
    +  get: [],
    +  post: [],
    +  delete: [],
    +  use: [],
    +};
    +
    +vi.mock('express', () => {
    +  const mockApp = {
    +    get: vi.fn((path: string, ...handlers: any[]) => {
    +      mockHandlers.get.push({ path, handlers });
    +      return mockApp;
    +    }),
    +    post: vi.fn((path: string, ...handlers: any[]) => {
    +      mockHandlers.post.push({ path, handlers });
    +      return mockApp;
    +    }),
    +    delete: vi.fn((path: string, ...handlers: any[]) => {
    +      mockHandlers.delete.push({ path, handlers });
    +      return mockApp;
    +    }),
    +    use: vi.fn((handler: any) => {
    +      mockHandlers.use.push(handler);
    +      return mockApp;
    +    }),
    +    set: vi.fn(),
    +    listen: vi.fn((_port: number, _host: string, cb?: () => void) => {
    +      if (cb) cb();
    +      return {
    +        on: vi.fn(),
    +        close: (callback: () => void) => callback(),
    +        address: () => ({ port: 3000 }),
    +      };
    +    }),
    +  };
    +
    +  interface ExpressMock {
    +    (): typeof mockApp;
    +    json(): (req: any, res: any, next: any) => void;
    +  }
    +  const expressMock = vi.fn(() => mockApp) as unknown as ExpressMock;
    +  expressMock.json = vi.fn(() => (_req: any, _res: any, next: any) => next());
    +
    +  return {
    +    default: expressMock,
    +    Request: {},
    +    Response: {},
    +    NextFunction: {},
    +  };
    +});
    +
    +import { SingleSessionHTTPServer } from '../../../src/http-server-single-session';
    +import * as dns from 'dns/promises';
    +
    +describe('HTTP Server instance URL validation (GHSA-4ggg-h7ph-26qr)', () => {
    +  const originalEnv = process.env;
    +  const TEST_AUTH_TOKEN = 'test-auth-token-with-more-than-32-characters';
    +  let server: SingleSessionHTTPServer;
    +  let consoleLogSpy: any;
    +  let consoleWarnSpy: any;
    +  let consoleErrorSpy: any;
    +
    +  beforeEach(() => {
    +    process.env = { ...originalEnv };
    +    process.env.AUTH_TOKEN = TEST_AUTH_TOKEN;
    +    process.env.PORT = '0';
    +
    +    consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
    +    consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
    +    consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
    +
    +    vi.clearAllMocks();
    +    mockHandlers.get = [];
    +    mockHandlers.post = [];
    +    mockHandlers.delete = [];
    +    mockHandlers.use = [];
    +
    +    // Re-install wrapOperation implementation after clearAllMocks (Vitest 3
    +    // clears implementations via clearAllMocks on vi.fn().mockImplementation
    +    // mocks — need to re-apply every beforeEach).
    +    mockConsoleManager.wrapOperation.mockImplementation(async (fn: any) => fn());
    +
    +    // Default DNS mock: public IP 8.8.8.8 for any hostname; IP literals resolve to themselves.
    +    vi.mocked(dns.lookup).mockImplementation(async (hostname: any) => {
    +      if (hostname === 'localhost') return { address: '127.0.0.1', family: 4 } as any;
    +      const ipv4 = /^(\d{1,3}\.){3}\d{1,3}$/;
    +      if (ipv4.test(hostname)) return { address: hostname, family: 4 } as any;
    +      return { address: '8.8.8.8', family: 4 } as any;
    +    });
    +  });
    +
    +  afterEach(async () => {
    +    process.env = originalEnv;
    +    consoleLogSpy.mockRestore();
    +    consoleWarnSpy.mockRestore();
    +    consoleErrorSpy.mockRestore();
    +    if (server) {
    +      await server.shutdown();
    +      server = null as any;
    +    }
    +  });
    +
    +  function findHandler(method: 'get' | 'post' | 'delete', path: string) {
    +    const routes = mockHandlers[method];
    +    const route = routes.find((r: any) => r.path === path);
    +    return route ? route.handlers[route.handlers.length - 1] : null;
    +  }
    +
    +  function createMockReqRes() {
    +    const headers: Record<string, string> = {};
    +    const res: any = {
    +      status: vi.fn().mockReturnThis(),
    +      json: vi.fn().mockReturnThis(),
    +      send: vi.fn().mockReturnThis(),
    +      setHeader: vi.fn((key: string, value: string) => {
    +        headers[key.toLowerCase()] = value;
    +      }),
    +      sendStatus: vi.fn().mockReturnThis(),
    +      headersSent: false,
    +      getHeader: (key: string) => headers[key.toLowerCase()],
    +      on: vi.fn(),
    +      headers,
    +    };
    +    const req: any = {
    +      method: 'POST',
    +      path: '/mcp',
    +      url: '/mcp',
    +      headers: {} as Record<string, string>,
    +      body: {
    +        jsonrpc: '2.0',
    +        method: 'initialize',
    +        params: {
    +          protocolVersion: '2024-11-05',
    +          capabilities: {},
    +          clientInfo: { name: 'ssrf-test', version: '1.0' },
    +        },
    +        id: 1,
    +      },
    +      ip: '127.0.0.1',
    +      get: vi.fn((h: string) => (req.headers as Record<string, string>)[h.toLowerCase()]),
    +      on: vi.fn(),
    +      removeListener: vi.fn(),
    +    };
    +    return { req, res };
    +  }
    +
    +  function assertSsrfRejection(res: any) {
    +    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: 'Invalid instance configuration',
    +      },
    +    });
    +  }
    +
    +  describe('sync validation at the route handler', () => {
    +    it('rejects x-n8n-url with trailing fragment', 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': 'http://169.254.169.254#',
    +        'x-n8n-key': 'attacker-key',
    +        'x-instance-id': 'attacker',
    +      };
    +      await handler(req, res);
    +
    +      assertSsrfRejection(res);
    +      // Sync validation catches this without DNS.
    +      expect(vi.mocked(dns.lookup)).not.toHaveBeenCalled();
    +    });
    +
    +    it('rejects x-n8n-url with cloud metadata IP literal', 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': 'http://169.254.169.254',
    +        'x-n8n-key': 'attacker-key',
    +      };
    +      await handler(req, res);
    +
    +      assertSsrfRejection(res);
    +    });
    +
    +    it('rejects x-n8n-url with private IPv4 literal in default strict 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': 'http://10.0.0.1',
    +        'x-n8n-key': 'attacker-key',
    +      };
    +      await handler(req, res);
    +
    +      assertSsrfRejection(res);
    +    });
    +
    +    it('rejects x-n8n-url with userinfo', 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': 'http://user:pw@evil.example.com',
    +        'x-n8n-key': 'attacker-key',
    +      };
    +      await handler(req, res);
    +
    +      assertSsrfRejection(res);
    +    });
    +  });
    +
    +  describe('async DNS check inside handleRequest', () => {
    +    it('rejects hostname that DNS-resolves to cloud metadata IP', async () => {
    +      vi.mocked(dns.lookup).mockResolvedValue({ address: '169.254.169.254', family: 4 } as any);
    +
    +      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': 'http://evil.example.com',
    +        'x-n8n-key': 'attacker-key',
    +      };
    +      await handler(req, res);
    +
    +      assertSsrfRejection(res);
    +      expect(vi.mocked(dns.lookup)).toHaveBeenCalled();
    +    });
    +
    +    it('rejects hostname that DNS-resolves to private IP in strict mode', async () => {
    +      vi.mocked(dns.lookup).mockResolvedValue({ address: '10.0.0.1', family: 4 } as any);
    +
    +      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': 'http://internal.example.com',
    +        'x-n8n-key': 'attacker-key',
    +      };
    +      await handler(req, res);
    +
    +      assertSsrfRejection(res);
    +    });
    +
    +    it('allows legitimate public URL through the gate', async () => {
    +      vi.mocked(dns.lookup).mockResolvedValue({ address: '8.8.8.8', family: 4 } as any);
    +
    +      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://n8n.example.com',
    +        'x-n8n-key': 'valid-key',
    +      };
    +      await handler(req, res);
    +
    +      // Must not produce a 400 rejection for a legitimate public URL.
    +      expect(res.status).not.toHaveBeenCalledWith(400);
    +    });
    +  });
    +
    +  describe('handler behavior preserved', () => {
    +    it('no multi-tenant headers → no DNS calls, no 400', 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).not.toHaveBeenCalledWith(400);
    +      expect(vi.mocked(dns.lookup)).not.toHaveBeenCalled();
    +    });
    +
    +    it('only x-n8n-url without x-n8n-key still runs sync validation on the URL', 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': 'http://169.254.169.254#',
    +      };
    +      await handler(req, res);
    +
    +      assertSsrfRejection(res);
    +    });
    +  });
    +
    +  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);
    +
    +      server = new SingleSessionHTTPServer();
    +      await server.start();
    +
    +      const { req, res } = createMockReqRes();
    +      req.headers = { authorization: `Bearer ${TEST_AUTH_TOKEN}` };
    +
    +      await server.handleRequest(req as any, res as any, {
    +        n8nApiUrl: 'http://evil.example.com',
    +        n8nApiKey: 'attacker-key',
    +        instanceId: 'lib-api-attacker',
    +      });
    +
    +      assertSsrfRejection(res);
    +    });
    +
    +    it('rejects fragment-laden context passed directly to handleRequest', async () => {
    +      server = new SingleSessionHTTPServer();
    +      await server.start();
    +
    +      const { req, res } = createMockReqRes();
    +      req.headers = { authorization: `Bearer ${TEST_AUTH_TOKEN}` };
    +
    +      await server.handleRequest(req as any, res as any, {
    +        n8nApiUrl: 'http://169.254.169.254#',
    +        n8nApiKey: 'attacker-key',
    +      });
    +
    +      assertSsrfRejection(res);
    +    });
    +  });
    +});
    
  • tests/unit/multi-tenant-integration.test.ts+17 0 modified
    @@ -38,6 +38,23 @@ describe('Multi-Tenant Support Integration', () => {
     
       describe('InstanceContext Validation', () => {
         describe('Real-world URL patterns', () => {
    +      // Since v2.47.4 (GHSA-4ggg-h7ph-26qr) validateInstanceContext runs
    +      // SSRF checks that reject localhost and private IPs under the default
    +      // `strict` mode. These test URLs include legitimate local/private n8n
    +      // deployments that require `permissive` mode to be accepted.
    +      let originalSecurityMode: string | undefined;
    +      beforeEach(() => {
    +        originalSecurityMode = process.env.WEBHOOK_SECURITY_MODE;
    +        process.env.WEBHOOK_SECURITY_MODE = 'permissive';
    +      });
    +      afterEach(() => {
    +        if (originalSecurityMode === undefined) {
    +          delete process.env.WEBHOOK_SECURITY_MODE;
    +        } else {
    +          process.env.WEBHOOK_SECURITY_MODE = originalSecurityMode;
    +        }
    +      });
    +
           const validUrls = [
             'https://app.n8n.cloud',
             'https://tenant1.n8n.cloud',
    
  • tests/unit/services/n8n-api-client.test.ts+64 0 modified
    @@ -1724,4 +1724,68 @@ describe('N8nApiClient', () => {
           expect(result.message).toBe('Bad request');
         });
       });
    +
    +  // GHSA-4ggg-h7ph-26qr — defense-in-depth URL normalization in the constructor.
    +  describe('constructor URL normalization', () => {
    +    const getLastAxiosBaseURL = (): string => {
    +      const calls = vi.mocked(axios.create).mock.calls;
    +      return (calls[calls.length - 1][0] as any).baseURL;
    +    };
    +
    +    it('should strip a trailing fragment', () => {
    +      const c = new N8nApiClient({
    +        baseUrl: 'http://169.254.169.254#',
    +        apiKey: 'k'
    +      });
    +      expect((c as any).baseUrl).toBe('http://169.254.169.254');
    +      const baseURL = getLastAxiosBaseURL();
    +      expect(baseURL).not.toContain('#');
    +      expect(baseURL).toBe('http://169.254.169.254/api/v1');
    +    });
    +
    +    it('should strip a fragment with content after the hash', () => {
    +      const c = new N8nApiClient({
    +        baseUrl: 'https://n8n.example.com#trailing',
    +        apiKey: 'k'
    +      });
    +      expect((c as any).baseUrl).not.toContain('#');
    +      expect(getLastAxiosBaseURL()).not.toContain('#');
    +    });
    +
    +    it('should strip userinfo from baseUrl', () => {
    +      const c = new N8nApiClient({
    +        baseUrl: 'https://user:pw@n8n.example.com',
    +        apiKey: 'k'
    +      });
    +      expect((c as any).baseUrl).not.toContain('@');
    +      expect((c as any).baseUrl).not.toContain('user');
    +      expect((c as any).baseUrl).not.toContain('pw');
    +      expect(getLastAxiosBaseURL()).not.toContain('@');
    +    });
    +
    +    it('should collapse trailing slash', () => {
    +      const c = new N8nApiClient({
    +        baseUrl: 'https://n8n.example.com/',
    +        apiKey: 'k'
    +      });
    +      expect((c as any).baseUrl).toBe('https://n8n.example.com');
    +      expect(getLastAxiosBaseURL()).toBe('https://n8n.example.com/api/v1');
    +    });
    +
    +    it('should be idempotent when baseUrl already ends with /api/v1', () => {
    +      const c = new N8nApiClient({
    +        baseUrl: 'https://n8n.example.com/api/v1',
    +        apiKey: 'k'
    +      });
    +      expect(getLastAxiosBaseURL()).toBe('https://n8n.example.com/api/v1');
    +      // Must not double-suffix to /api/v1/api/v1
    +      expect(getLastAxiosBaseURL()).not.toContain('/api/v1/api/v1');
    +    });
    +
    +    it('should fall through to raw input for unparseable URLs without throwing', () => {
    +      expect(() => {
    +        new N8nApiClient({ baseUrl: 'not-a-url', apiKey: 'k' });
    +      }).not.toThrow();
    +    });
    +  });
     });
    
  • tests/unit/types/instance-context-multi-tenant.test.ts+20 1 modified
    @@ -11,14 +11,33 @@
      * - Edge cases like empty strings, malformed URLs, etc.
      */
     
    -import { describe, it, expect } from 'vitest';
    +import { describe, it, expect, beforeAll, afterAll } from 'vitest';
     import {
       InstanceContext,
       isInstanceContext,
       validateInstanceContext
     } from '../../../src/types/instance-context';
     
     describe('Instance Context Multi-Tenant URL Validation', () => {
    +  // This suite exercises FORMAT validation. Since v2.47.4 (GHSA-4ggg-h7ph-26qr),
    +  // validateInstanceContext also runs SSRF checks that reject localhost and
    +  // private IPs under the default `strict` mode. Force `permissive` mode for
    +  // this suite so format assertions are isolated from SSRF policy. SSRF
    +  // behavior is covered separately in tests/unit/flexible-instance-security.test.ts
    +  // and tests/unit/utils/ssrf-protection.test.ts.
    +  let originalSecurityMode: string | undefined;
    +  beforeAll(() => {
    +    originalSecurityMode = process.env.WEBHOOK_SECURITY_MODE;
    +    process.env.WEBHOOK_SECURITY_MODE = 'permissive';
    +  });
    +  afterAll(() => {
    +    if (originalSecurityMode === undefined) {
    +      delete process.env.WEBHOOK_SECURITY_MODE;
    +    } else {
    +      process.env.WEBHOOK_SECURITY_MODE = originalSecurityMode;
    +    }
    +  });
    +
       describe('IPv4 Address Validation', () => {
         describe('Valid IPv4 addresses', () => {
           const validIPv4Tests = [
    
  • tests/unit/utils/ssrf-protection.test.ts+169 0 modified
    @@ -394,4 +394,173 @@ describe('SSRFProtection', () => {
           expect(result.valid).toBe(true);
         });
       });
    +
    +  /**
    +   * Sync URL validation — verifies the sync guard that runs inside
    +   * validateInstanceContext and must not make any DNS calls.
    +   */
    +  describe('validateUrlSync', () => {
    +    beforeEach(() => {
    +      delete process.env.WEBHOOK_SECURITY_MODE;
    +    });
    +
    +    it('should reject URL with trailing fragment', () => {
    +      const result = SSRFProtection.validateUrlSync('http://169.254.169.254#');
    +      expect(result.valid).toBe(false);
    +      expect(result.reason).toBe('URL fragments are not allowed');
    +    });
    +
    +    it('should reject HTTPS variant with trailing fragment', () => {
    +      const result = SSRFProtection.validateUrlSync('https://169.254.169.254#');
    +      expect(result.valid).toBe(false);
    +      expect(result.reason).toBe('URL fragments are not allowed');
    +    });
    +
    +    it('should reject fragment with content after the hash', () => {
    +      const result = SSRFProtection.validateUrlSync('http://n8n.example.com#trailing');
    +      expect(result.valid).toBe(false);
    +      expect(result.reason).toBe('URL fragments are not allowed');
    +    });
    +
    +    it('should reject URLs with userinfo', () => {
    +      const result = SSRFProtection.validateUrlSync('http://user:pass@n8n.example.com');
    +      expect(result.valid).toBe(false);
    +      expect(result.reason).toBe('Userinfo in URL is not allowed');
    +    });
    +
    +    it('should reject URLs with username only', () => {
    +      const result = SSRFProtection.validateUrlSync('http://user@n8n.example.com');
    +      expect(result.valid).toBe(false);
    +      expect(result.reason).toBe('Userinfo in URL is not allowed');
    +    });
    +
    +    it('should reject AWS/Azure metadata endpoint in all modes', () => {
    +      for (const mode of ['strict', 'moderate', 'permissive']) {
    +        process.env.WEBHOOK_SECURITY_MODE = mode;
    +        const result = SSRFProtection.validateUrlSync('http://169.254.169.254');
    +        expect(result.valid, `mode=${mode}`).toBe(false);
    +        expect(result.reason).toBe('Cloud metadata endpoint blocked');
    +      }
    +    });
    +
    +    it('should reject all cloud metadata endpoints in all modes', () => {
    +      const metadataUrls = [
    +        'http://169.254.170.2',         // AWS ECS
    +        'http://metadata.google.internal', // GCP
    +        'http://metadata',                 // GCP short
    +        'http://100.100.100.200',          // Alibaba
    +        'http://192.0.0.192',              // Oracle
    +      ];
    +      for (const mode of ['strict', 'moderate', 'permissive']) {
    +        process.env.WEBHOOK_SECURITY_MODE = mode;
    +        for (const url of metadataUrls) {
    +          const result = SSRFProtection.validateUrlSync(url);
    +          expect(result.valid, `url=${url} mode=${mode}`).toBe(false);
    +          expect(result.reason).toBe('Cloud metadata endpoint blocked');
    +        }
    +      }
    +    });
    +
    +    it('should reject private IPv4 literals in strict mode', () => {
    +      delete process.env.WEBHOOK_SECURITY_MODE; // strict default
    +      const privateUrls = [
    +        'http://10.0.0.1',
    +        'http://192.168.1.1',
    +        'http://172.16.0.1',
    +        'http://172.31.255.255',
    +      ];
    +      for (const url of privateUrls) {
    +        const result = SSRFProtection.validateUrlSync(url);
    +        expect(result.valid, `url=${url}`).toBe(false);
    +        expect(result.reason).toContain('Private IP');
    +      }
    +    });
    +
    +    it('should reject private IPv4 literals in moderate mode', () => {
    +      process.env.WEBHOOK_SECURITY_MODE = 'moderate';
    +      const result = SSRFProtection.validateUrlSync('http://10.0.0.1');
    +      expect(result.valid).toBe(false);
    +      expect(result.reason).toContain('Private IP');
    +    });
    +
    +    it('should allow private IPv4 literals in permissive mode', () => {
    +      process.env.WEBHOOK_SECURITY_MODE = 'permissive';
    +      const result = SSRFProtection.validateUrlSync('http://10.0.0.1');
    +      expect(result.valid).toBe(true);
    +    });
    +
    +    it('should reject localhost literals in strict mode', () => {
    +      delete process.env.WEBHOOK_SECURITY_MODE;
    +      const localhostUrls = [
    +        'http://localhost',
    +        'http://127.0.0.1',
    +        'http://0.0.0.0',
    +      ];
    +      for (const url of localhostUrls) {
    +        const result = SSRFProtection.validateUrlSync(url);
    +        expect(result.valid, `url=${url}`).toBe(false);
    +      }
    +    });
    +
    +    it('should allow localhost literals in moderate and permissive modes', () => {
    +      for (const mode of ['moderate', 'permissive']) {
    +        process.env.WEBHOOK_SECURITY_MODE = mode;
    +        const result = SSRFProtection.validateUrlSync('http://localhost:5678');
    +        expect(result.valid, `mode=${mode}`).toBe(true);
    +      }
    +    });
    +
    +    it('should reject non-http(s) protocols', () => {
    +      const badProtocols = [
    +        'file:///etc/passwd',
    +        'gopher://example.com',
    +        'ftp://example.com',
    +        'data:text/plain;base64,aGVsbG8=',
    +      ];
    +      for (const url of badProtocols) {
    +        const result = SSRFProtection.validateUrlSync(url);
    +        expect(result.valid, `url=${url}`).toBe(false);
    +        expect(result.reason).toContain('protocol');
    +      }
    +    });
    +
    +    it('should reject malformed URLs', () => {
    +      const malformed = ['not-a-url', 'http://', '://missing-protocol.com', ''];
    +      for (const url of malformed) {
    +        const result = SSRFProtection.validateUrlSync(url);
    +        expect(result.valid, `url=${url}`).toBe(false);
    +      }
    +    });
    +
    +    it('should accept valid public URLs', () => {
    +      const validUrls = [
    +        'https://n8n.example.com',
    +        'https://n8n.example.com/api/v1',
    +        'https://n8n.example.com:8443',
    +        'http://n8n.example.com/path?query=1',
    +      ];
    +      for (const url of validUrls) {
    +        const result = SSRFProtection.validateUrlSync(url);
    +        expect(result.valid, `url=${url}`).toBe(true);
    +        expect(result.reason).toBeUndefined();
    +      }
    +    });
    +
    +    it('should not perform DNS resolution', () => {
    +      // Spin through a representative set; dns.lookup must never be called.
    +      SSRFProtection.validateUrlSync('https://n8n.example.com');
    +      SSRFProtection.validateUrlSync('http://169.254.169.254');
    +      SSRFProtection.validateUrlSync('http://10.0.0.1');
    +      SSRFProtection.validateUrlSync('http://localhost');
    +      SSRFProtection.validateUrlSync('http://evil.example.com#');
    +      expect(vi.mocked(dns.lookup)).toHaveBeenCalledTimes(0);
    +    });
    +
    +    it('should reject non-string input safely', () => {
    +      // @ts-expect-error testing runtime guard
    +      const result = SSRFProtection.validateUrlSync(null);
    +      expect(result.valid).toBe(false);
    +      expect(result.reason).toBe('URL fragments are not allowed');
    +    });
    +  });
     });
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

5

News mentions

0

No linked articles in our index yet.