{"id":"CVE-2026-86075","aliases":["EUVD-2026-74281","GHSA-hh89-3r9w-qj3j","ROOT-APP-NPM-CVE-2026-86075"],"status":"published","title":"n8n: Unauthenticated Persistent Storage Exhaustion via OAuth Dynamic Client Registration Endpoint","description":"n8n is an open source workflow automation platform. Prior to 2.37.7 and 2.38.2, the OAuth Dynamic Client Registration endpoint bounded redirect_uris but accepted arbitrarily large client_name and grant_types values. An unauthenticated remote caller could repeatedly persist oversized values in oauth_clients and exhaust database storage. The affected validation is in packages/cli/src/modules/oauth-server/oauth-server.service.ts, including MAX_CLIENT_NAME_LENGTH and MAX_GRANT_TYPES. This issue is fixed in versions 2.37.7 and 2.38.2.","severity":{"version":"4.0","score":8.7,"vector":"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","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00609,"percentile":0.4963,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-770"],"published":"2026-09-08T21:29:38Z","modified":"2026-10-28T02:30:39Z","fixes":[{"ecosystem":"npm","package":"n8n","fixed_in":["2.38.2","2.37.7"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"n8n","fixed_in":["2.19.3-aikido.9","2.19.3-aikido.10","2.19.3-aikido.11","2.19.3-aikido.12","2.19.3-aikido.13","2.19.3-aikido.14","2.19.3-aikido.15"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/n8n","fixed_in":["2.19.3-root.io.9","2.19.3-root.io.10","2.19.3-root.io.11","2.19.3-root.io.12","2.19.3-root.io.13","2.19.3-root.io.14","2.19.3-root.io.15"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"n8n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.38.0"},{"fixed":"2.38.2"}]}]},{"source":"ghsa","ecosystem":"npm","package":"n8n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.37.7"}]}]},{"source":"osv","ecosystem":"npm","package":"n8n","ranges":[{"type":"SEMVER","events":[{"introduced":"2.38.0"},{"fixed":"2.38.2"}]}]},{"source":"osv","ecosystem":"npm","package":"n8n","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.37.7"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"n8n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.19.3-aikido.9"},{"fixed":"2.19.3-aikido.10"},{"fixed":"2.19.3-aikido.11"},{"fixed":"2.19.3-aikido.12"},{"fixed":"2.19.3-aikido.13"},{"fixed":"2.19.3-aikido.14"},{"fixed":"2.19.3-aikido.15"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/n8n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.19.3-root.io.9"},{"fixed":"2.19.3-root.io.10"},{"fixed":"2.19.3-root.io.11"},{"fixed":"2.19.3-root.io.12"},{"fixed":"2.19.3-root.io.13"},{"fixed":"2.19.3-root.io.14"},{"fixed":"2.19.3-root.io.15"}]}]}],"products":[{"vendor":"n8n","product":"n8n"},{"vendor":"n8n-io","product":"n8n"}],"references":[{"url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-hh89-3r9w-qj3j","tags":["x_refsource_CONFIRM","Mitigation","Vendor Advisory","advisory","web"]},{"url":"https://github.com/n8n-io/n8n/releases/tag/n8n@2.37.7","tags":["x_refsource_MISC","Release Notes","web"]},{"url":"https://github.com/n8n-io/n8n/releases/tag/n8n@2.38.2","tags":["x_refsource_MISC","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-86075","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-hh89-3r9w-qj3j"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/86xxx/CVE-2026-86075.json","tags":["advisory"]},{"url":"https://github.com/n8n-io/n8n","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-86075","title":"n8n: Unauthenticated Persistent Storage Exhaustion via OAuth Dynamic Client Registration Endpoint","description":"n8n is an open source workflow automation platform. Prior to 2.37.7 and 2.38.2, the OAuth Dynamic Client Registration endpoint bounded redirect_uris but accepted arbitrarily large client_name and grant_types values. An unauthenticated remote caller could repeatedly persist oversized values in oauth_clients and exhaust database storage. The affected validation is in packages/cli/src/modules/oauth-server/oauth-server.service.ts, including MAX_CLIENT_NAME_LENGTH and MAX_GRANT_TYPES. This issue is fixed in versions 2.37.7 and 2.38.2.","status":"published","published":"2026-09-08T21:29:38.596Z","modified":"2026-09-09T16:03:52.236Z","cvss":[{"version":"4.0","score":8.7,"vector":"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","level":"high","assessor":"cna"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T13:49:42.666099Z"}],"euvd":[{"id":"EUVD-2026-74281","description":"n8n is an open source workflow automation platform. Prior to 2.37.7 and 2.38.2, the OAuth Dynamic Client Registration endpoint bounded redirect_uris but accepted arbitrarily large client_name and grant_types values. An unauthenticated remote caller could repeatedly persist oversized values in oauth_clients and exhaust database storage. The affected validation is in packages/cli/src/modules/oauth-server/oauth-server.service.ts, including MAX_CLIENT_NAME_LENGTH and MAX_GRANT_TYPES. This issue is fixed in versions 2.37.7 and 2.38.2.","status":"published","published":"2026-09-08T21:29:38Z","modified":"2026-09-09T16:03:52Z","cvss":[{"version":"4.0","score":8.7,"vector":"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","level":"high"}],"updated_at":"2026-11-02T17:28:26.437971Z"}],"ghsa":[{"id":"GHSA-hh89-3r9w-qj3j","title":"n8n: Unauthenticated Persistent Storage Exhaustion via OAuth Dynamic Client Registration Endpoint","description":"## Impact\n\nThe OAuth Dynamic Client Registration endpoints validated field sizes only for `redirect_uris`, leaving `client_name` and `grant_types` bounded by presence checks alone. An unauthenticated remote caller could submit arbitrarily large values in either field and have them persisted to the database. Repeated registration therefore grew persistent storage without limit and without any account on the instance.  The patch caps `client_name` at its column length and limits `grant_types` to the grant types the server actually implements, with the array capped at that count.\n\n## Patches\n\nThe issue has been fixed in n8n versions 2.37.7 and 2.38.2. Users should upgrade to one of these versions or later to remediate the vulnerability.\n\n## Workarounds\n\nIf upgrading is not immediately possible, administrators should consider the following temporary mitigations:\n- Restrict network access to the n8n instance so that only trusted clients can reach it.\n- Place the instance behind a reverse proxy configured to enforce strict request body size limits below the default 16 MiB.\n- Monitor database size for unexpected growth and audit the `oauth_clients` table for anomalous entries.\n\nThese workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.","status":"published","published":"2026-09-10T15:11:31Z","modified":"2026-09-10T15:11:31Z","cvss":[{"version":"4.0","score":8.7,"vector":"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","level":"high"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T14:41:15.803194Z"}],"nvd":[{"id":"CVE-2026-86075","description":"n8n is an open source workflow automation platform. Prior to 2.37.7 and 2.38.2, the OAuth Dynamic Client Registration endpoint bounded redirect_uris but accepted arbitrarily large client_name and grant_types values. An unauthenticated remote caller could repeatedly persist oversized values in oauth_clients and exhaust database storage. The affected validation is in packages/cli/src/modules/oauth-server/oauth-server.service.ts, including MAX_CLIENT_NAME_LENGTH and MAX_GRANT_TYPES. This issue is fixed in versions 2.37.7 and 2.38.2.","status":"published","published":"2026-09-08T22:19:16.25Z","modified":"2026-09-11T18:20:42.783Z","cvss":[{"version":"4.0","score":8.7,"vector":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T14:12:45.612639Z"}],"osv":[{"id":"CVE-2026-86075","title":"n8n: Unauthenticated Persistent Storage Exhaustion via OAuth Dynamic Client Registration Endpoint","description":"n8n is an open source workflow automation platform. Prior to 2.37.7 and 2.38.2, the OAuth Dynamic Client Registration endpoint bounded redirect_uris but accepted arbitrarily large client_name and grant_types values. An unauthenticated remote caller could repeatedly persist oversized values in oauth_clients and exhaust database storage. The affected validation is in packages/cli/src/modules/oauth-server/oauth-server.service.ts, including MAX_CLIENT_NAME_LENGTH and MAX_GRANT_TYPES. This issue is fixed in versions 2.37.7 and 2.38.2.","status":"published","published":"2026-09-08T21:29:38.596Z","modified":"2026-10-28T02:30:39.24761591Z","cvss":[{"version":"4.0","score":8.7,"vector":"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","level":"high"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T15:45:18.825071Z"},{"id":"GHSA-hh89-3r9w-qj3j","title":"n8n: Unauthenticated Persistent Storage Exhaustion via OAuth Dynamic Client Registration Endpoint","description":"## Impact\n\nThe OAuth Dynamic Client Registration endpoints validated field sizes only for `redirect_uris`, leaving `client_name` and `grant_types` bounded by presence checks alone. An unauthenticated remote caller could submit arbitrarily large values in either field and have them persisted to the database. Repeated registration therefore grew persistent storage without limit and without any account on the instance.  The patch caps `client_name` at its column length and limits `grant_types` to the grant types the server actually implements, with the array capped at that count.\n\n## Patches\n\nThe issue has been fixed in n8n versions 2.37.7 and 2.38.2. Users should upgrade to one of these versions or later to remediate the vulnerability.\n\n## Workarounds\n\nIf upgrading is not immediately possible, administrators should consider the following temporary mitigations:\n- Restrict network access to the n8n instance so that only trusted clients can reach it.\n- Place the instance behind a reverse proxy configured to enforce strict request body size limits below the default 16 MiB.\n- Monitor database size for unexpected growth and audit the `oauth_clients` table for anomalous entries.\n\nThese workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.","status":"published","published":"2026-09-10T15:11:31Z","modified":"2026-09-10T15:15:05.011296428Z","cvss":[{"version":"4.0","score":8.7,"vector":"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","level":"high"}],"cwes":["CWE-770"],"updated_at":"2026-11-02T15:46:49.28217Z"},{"id":"ROOT-APP-NPM-CVE-2026-86075","title":"CVE-2026-86075 in n8n - Patched by Root","description":"Root has patched CVE-2026-86075 in the n8n package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-10-06T03:42:47Z","modified":"2026-10-06T04:15:04.13586538Z","updated_at":"2026-11-02T15:53:27.649662Z"}]}}
