Skip to main content
Vulnerability Database/CVE-2025-49595

CVE-2025-49595: N8n Workflow Automation Platform DOS Vulnerability

CVE-2025-49595 is a denial of service vulnerability in N8n workflow automation platform affecting the binary-data endpoint. Attackers can exploit empty filesystem URIs to cause service disruption. This article covers technical details, affected versions, impact analysis, and mitigation strategies.

Published:

CVE-2025-49595 Overview

CVE-2025-49595 is a denial of service vulnerability in n8n, an open-source workflow automation platform. The flaw affects the /rest/binary-data endpoint in versions prior to 1.99.0. Authenticated attackers can send GET requests containing empty filesystem URIs (filesystem:// or filesystem-v2://) to trigger resource exhaustion. Confirmed impact on n8n.cloud instances includes HTTP/2 524 timeout responses, rendering the service unavailable. The vulnerability is categorized under [CWE-400] Uncontrolled Resource Consumption. n8n released a patch in version 1.99.0 addressing the malformed binary data ID handling.

Critical Impact

Authenticated attackers can disrupt n8n service availability by submitting malformed filesystem URIs to the binary data endpoint, causing timeouts and resource exhaustion.

Affected Products

  • n8n workflow automation platform (Node.js)
  • All n8n versions prior to 1.99.0
  • n8n.cloud hosted instances

Discovery Timeline

  • 2025-07-03 - CVE-2025-49595 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2025-49595

Vulnerability Analysis

The vulnerability resides in the binary data controller of n8n, specifically in the request handler for /rest/binary-data. The controller parses a binaryDataId parameter expected to follow the format <mode>:<path>. When the value contains only the mode prefix followed by an empty path (for example filesystem:// or filesystem-v2://), downstream filesystem operations receive an empty or root-like path. This triggers uncontrolled resource consumption, resulting in request timeouts. Because the endpoint requires authentication but performs the vulnerable operation before path validation, any authenticated user can trigger the condition against a shared multi-tenant instance such as n8n.cloud.

Root Cause

The original parser used binaryDataId.split(':') and validated only the presence of a separator and a valid mode. It did not validate the path segment following the separator. Empty, /, or // values were accepted and passed to filesystem resolution logic, causing the process to consume resources without returning.

Attack Vector

Exploitation requires network access and authenticated privileges. The attacker submits an HTTP GET request to /rest/binary-data with a malformed id query parameter such as filesystem:// or filesystem-v2://. The request stalls until the upstream gateway returns an HTTP/2 524 timeout, blocking legitimate workflow execution requests dependent on binary data retrieval.

typescript
// Security patch in packages/cli/src/controllers/binary-data.controller.ts
// fix(core): Prevent DoS via malformed binary data ID (#16229)

			throw new BadRequestError('Missing binary data ID');
		}

-		if (!binaryDataId.includes(':')) {
-			throw new BadRequestError('Missing binary data mode');
+		const separatorIndex = binaryDataId.indexOf(':');
+
+		if (separatorIndex === -1) {
+			throw new BadRequestError('Malformed binary data ID');
		}

-		const [mode] = binaryDataId.split(':');
+		const mode = binaryDataId.substring(0, separatorIndex);
+
		if (!isValidNonDefaultMode(mode)) {
			throw new BadRequestError('Invalid binary data mode');
		}
+
+		const path = binaryDataId.substring(separatorIndex + 1);
+
+		if (path === '' || path === '/' || path === '//') {
+			throw new BadRequestError('Malformed binary data ID');
+		}
	}

Source: n8n GitHub commit 43c52a8b. The patch introduces explicit validation that the path segment following the mode separator is non-empty and not a root-like value.

Detection Methods for CVE-2025-49595

Indicators of Compromise

  • GET requests to /rest/binary-data with id parameter values of filesystem://, filesystem-v2://, filesystem:/, or filesystem-v2:/.
  • HTTP/2 524 timeout responses returned to clients from n8n or its upstream gateway.
  • Sudden spikes in long-running requests to the binary data endpoint originating from a single authenticated user.

Detection Strategies

  • Parse n8n access logs and reverse-proxy logs for requests to /rest/binary-data where the id query parameter matches empty filesystem URI patterns.
  • Correlate authenticated user sessions with elevated request latency or gateway timeout responses on the binary data endpoint.
  • Alert on repeated 5xx or 524 responses tied to a single user identifier within a short time window.

Monitoring Recommendations

  • Instrument n8n process-level CPU, memory, and event-loop lag metrics to detect resource exhaustion events.
  • Track request duration percentiles for /rest/binary-data and alert on outliers exceeding normal baselines.
  • Retain application and gateway logs long enough to reconstruct exploitation attempts across n8n.cloud tenants or self-hosted deployments.

How to Mitigate CVE-2025-49595

Immediate Actions Required

  • Upgrade all n8n installations to version 1.99.0 or later.
  • Audit authenticated user accounts and rotate credentials for any account exhibiting suspicious activity against /rest/binary-data.
  • Review reverse-proxy or WAF logs for the URI patterns listed above and block sources that repeatedly submit malformed requests.

Patch Information

The fix is available in n8n 1.99.0. Technical details are published in GitHub Security Advisory GHSA-pr9r-gxgp-9rm8, with implementation details in Pull Request #16229 and commit 43c52a8b. n8n.cloud tenants receive the patch automatically.

Workarounds

  • If patching is not immediately possible, deploy a reverse-proxy or WAF rule that rejects requests to /rest/binary-data where the id parameter matches filesystem:// or filesystem-v2:// with no trailing path.
  • Apply per-user rate limits on the /rest/binary-data endpoint to constrain exhaustion attempts.
  • Restrict n8n administrative and editor access to trusted users only, reducing the pool of accounts capable of triggering the flaw.
bash
# Example NGINX rule to block malformed binary data IDs until patched
location /rest/binary-data {
    if ($arg_id ~* "^(filesystem|filesystem-v2)://?/?$") {
        return 400;
    }
    proxy_pass http://n8n_backend;
}

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.