CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-86075

CVE-2026-86075: Unauthenticated Persistent Storage Exhaustion via OAuth Dynamic Client Registration Endpoint in n8n

Alon Barad
Alon Barad
Software Engineer

Sep 10, 2026·5 min read·3 visits

Executive Summary (TL;DR)

An unauthenticated remote attacker can cause a complete Denial of Service (DoS) of the n8n platform by submitting excessively large registration payloads containing bloated client_name and grant_types fields, which exhausts backend persistent storage.

In vulnerable configurations of n8n, the OAuth Dynamic Client Registration endpoint implements field size validation for redirect_uris but fails to enforce proper limits on client_name and grant_types. This allows an unauthenticated remote attacker to submit arbitrarily large values for these fields, leading to persistent database and disk storage exhaustion.

Vulnerability Overview

The OAuth Dynamic Client Registration service in n8n provides a mechanism for client applications to dynamically register with the built-in OAuth 2.0 server. This endpoint is designed to receive external payloads containing client metadata, such as redirection URIs, client names, and desired grant types. By design, Dynamic Client Registration endpoints are exposed publicly without requiring pre-existing authentication, representing a high-exposure attack surface.

In vulnerable configurations, n8n fails to adequately restrict the size and boundaries of registration parameters. While certain critical security fields, like redirection URIs, undergo format and structure validation, secondary properties do not. This exposes the backend to arbitrary data injection.

The vulnerability is classified under CWE-770 (Allocation of Resources Without Limits or Throttling). This security issue allows unauthenticated remote attackers to send excessively large payloads to the platform. By repeatedly calling the registration service, attackers can exhaust the server storage and crash the service.

Root Cause Analysis

The root cause of CVE-2026-86075 lies within the handling of registration parameters in packages/cli/src/modules/oauth-server/oauth-server.service.ts. Specifically, during the parsing of dynamic client registration requests, the service does not enforce length constraints on the client_name string or the number of items within the grant_types array.

When a client application submits a dynamic registration request, the service extracts the metadata fields and passes them to the database layer. Because the backend validation only checks for the existence of required fields rather than their maximum permissible lengths, extremely long character strings are accepted without truncation or rejection.

The input data is subsequently persisted directly into the oauth_clients table of the underlying database system, such as SQLite, PostgreSQL, or MySQL. Since there are no throttles, rate limits, or physical payload restrictions on this registration path, an attacker can transmit multi-megabyte payloads in a continuous loop, causing rapid table inflation and eventual storage exhaustion.

Code Analysis

The vulnerable implementation processes dynamic client registration parameters directly without applying validation checks on the payload sizes of client_name and grant_types. The following conceptual diagram represents the flow of input processing prior to database serialization:

In the vulnerable version, the incoming registration service receives raw input. The following code demonstrates the lack of length checks on fields prior to saving the client metadata:

// VULNERABLE CODE
async registerClient(registrationPayload: RegisterClientDto) {
  // Only redirect_uris format is strictly verified
  this.validateRedirectUris(registrationPayload.redirect_uris);
 
  // client_name and grant_types are saved without length constraints
  const newClient = this.oauthClientRepository.create({
    name: registrationPayload.client_name,
    grantTypes: registrationPayload.grant_types,
    redirectUris: registrationPayload.redirect_uris,
  });
 
  return await this.oauthClientRepository.save(newClient);
}

To resolve this issue, the patch enforces strict length limitations. The constants MAX_CLIENT_NAME_LENGTH and maximum element counts on grant_types have been integrated to validate the boundaries of incoming metadata properties:

// PATCHED CODE
import { MAX_CLIENT_NAME_LENGTH, MAX_GRANT_TYPES } from './constants';
 
async registerClient(registrationPayload: RegisterClientDto) {
  this.validateRedirectUris(registrationPayload.redirect_uris);
 
  // Added boundary validation for client_name length
  if (registrationPayload.client_name && registrationPayload.client_name.length > MAX_CLIENT_NAME_LENGTH) {
    throw new BadRequestError('Client name exceeds maximum allowed length');
  }
 
  // Added boundary validation for grant_types elements
  if (registrationPayload.grant_types && registrationPayload.grant_types.length > MAX_GRANT_TYPES) {
    throw new BadRequestError('Too many grant types provided');
  }
 
  const newClient = this.oauthClientRepository.create({
    name: registrationPayload.client_name,
    grantTypes: registrationPayload.grant_types,
    redirectUris: registrationPayload.redirect_uris,
  });
 
  return await this.oauthClientRepository.save(newClient);
}

Exploitation Methodology

Exploitation of CVE-2026-86075 requires network-level access to the exposed OAuth client registration endpoint of an n8n instance. Because the endpoint complies with dynamic registration specifications, it does not require prior authentication or API tokens.

An attacker can execute a denial of service attack by constructing automated scripts to send high volumes of HTTP POST requests containing oversized parameter payloads. By generating large blocks of repetitive characters inside the client_name attribute and specifying nested objects or arrays within grant_types, the size of each request can be increased to several megabytes.

As n8n receives these requests, it serializes each entry into the physical database. Over multiple parallel connections, this continuous influx of large records rapidly consumes available disk space, leading to write failures, application slowdowns, and ultimately an unrecoverable system crash.

Impact Assessment

The security impact of CVE-2026-86075 is classified as High with a CVSS v4.0 base score of 8.7. The primary threat is directed at system availability. Complete exhaustion of persistent storage prevents n8n from logging executions, storing session states, or running scheduled workflows.

Because n8n relies on database storage to track state transitions and save historical logs, database write locks or disk space exhaustion will freeze all running workflows. In enterprise environments where n8n coordinates critical business automation, this results in extensive operational downtime.

The confidentiality and integrity of existing data are not directly compromised by this vulnerability. However, the resulting service outage requires manual administrative intervention, such as clearing the affected database records or resizing the physical storage volumes, to restore system functionality.

Remediation & Mitigation Guidance

The recommended remediation for this vulnerability is to upgrade the n8n application to a patched version immediately. For deployments on the 2.37.x branch, users must upgrade to version 2.37.7 or later. For deployments on the 2.38.x branch, users must upgrade to version 2.38.2 or later.

In environments where immediate upgrading is not possible, organizations should implement temporary mitigations at the network layer. Administrators can configure a Web Application Firewall (WAF) or reverse proxy to enforce a strict body size limit (e.g., maximum 10KB) on requests targeting the /oauth/register or similar OAuth endpoints.

Additionally, rate-limiting rules should be applied on these registration endpoints. Limiting the number of client registrations permitted per source IP address over a given time window can prevent automated storage-bloat attempts from causing system-wide service disruption.

Technical Appendix

CVSS Score
8.7/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS Probability
0.29%
Top 78% most exploited

Affected Systems

n8n Workflow Automation Platform

Affected Versions Detail

Product
Affected Versions
Fixed Version
n8n
n8n
< 2.37.72.37.7
n8n
n8n
>= 2.38.0, < 2.38.22.38.2
AttributeDetail
CWE IDCWE-770
Attack VectorNetwork
Attack ComplexityLow
Privileges RequiredNone
CVSS v4.08.7 (High)
Exploit StatusNone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-770
Allocation of Resources Without Limits or Throttling

The product allocates memory, CPU, packet buffer, space on disk, or some other resource based on an untrusted, unthrottled input, but it does not limit or throttle the resource allocation, allowing an attacker to cause a denial of service.

References & Sources

  • [1]GitHub Security Advisory GHSA-hh89-3r9w-qj3j
  • [2]NVD - CVE-2026-86075
  • [3]n8n Release v2.37.7
  • [4]n8n Release v2.38.2

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-86076
8.7

CVE-2026-86076: Remote Code Execution via Expression Sandbox Escape in n8n

An expression sandbox escape vulnerability exists in n8n due to a missing AST traversal check on ClassBody in the PrototypeSanitizer. This allows authenticated users with low privileges to bypass property checks and achieve remote code execution.

Amit Schendel
Amit Schendel
1 views•7 min read
•about 3 hours ago•CVE-2026-86081
7.1

CVE-2026-86081: Regular Expression Denial of Service in n8n Git Node

A Regular Expression Denial of Service (ReDoS) vulnerability exists in n8n due to inefficient validation in its default blocked-file-pattern matching mechanism. This flaw can be triggered during Git operations, allowing authenticated workflow editors to cause resource exhaustion and completely freeze the n8n application process.

Amit Schendel
Amit Schendel
4 views•5 min read
•about 3 hours ago•CVE-2025-21587
7.4

CVE-2025-21587: Timing Side-Channel Vulnerability in JSSE RSA Decryption

CVE-2025-21587 is a high-severity timing side-channel vulnerability in the Java Secure Socket Extension (JSSE) component of Oracle Java SE and GraalVM. The flaw allows unauthenticated network attackers to perform Bleichenbacher-style (Marvin) decryption oracle attacks, potentially compromising TLS session confidentiality.

Amit Schendel
Amit Schendel
5 views•7 min read
•about 4 hours ago•CVE-2026-86082
7.1

CVE-2026-86082: Server-Side Request Forgery and Credential Leakage in n8n OpenAI Chat Model Node

CVE-2026-86082 is a critical Server-Side Request Forgery (SSRF) and credential leakage vulnerability in n8n. The flaw exists in the OpenAI Chat Model node's searchModels function, which fails to enforce credential domain restrictions when populating the model dropdown list. This allows an authenticated workflow editor to exfiltrate plaintext OpenAI API keys to an arbitrary attacker-controlled domain by specifying a custom baseURL override.

Alon Barad
Alon Barad
6 views•8 min read
•about 15 hours ago•GHSA-HXJG-93WC-H8P8
8.8

GHSA-hxjg-93wc-h8p8: Cross-Site Request Forgery in Komari Management Interface

A high-severity Cross-Site Request Forgery (CSRF) vulnerability exists in the Komari server monitoring tool. The administrative interface sets authentication cookies without restrictive SameSite or Secure attributes, and lacks any CSRF validation, enabling unauthenticated remote attackers to execute arbitrary commands or modify backend settings by exploiting administrative sessions.

Alon Barad
Alon Barad
6 views•5 min read
•about 18 hours ago•CVE-2026-88002
6.5

CVE-2026-88002: Infinite Loop Denial of Service in Open WebUI Chat History Reconstruction

An infinite loop vulnerability (CWE-835) in Open WebUI versions 0.5.0 through 0.11.0 allows authenticated attackers to cause a complete and persistent Denial of Service (DoS) of the backend. By submitting a specially crafted chat history containing cyclic message references that omit internal message identifiers, the cycle detection mechanism is bypassed. This triggers an infinite synchronous traversal that blocks the single-threaded asyncio event loop and exhausts system memory, causing the application to crash.

Alon Barad
Alon Barad
6 views•7 min read