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



GHSA-664H-GPGQ-H6XX

GHSA-664h-gpgq-h6xx: Privilege Escalation via Broken Authorization in n8n Evaluation Test Runs Controller

Amit Schendel
Amit Schendel
Senior Security Researcher

Jun 17, 2026·6 min read·12 visits

Executive Summary (TL;DR)

A scope misconfiguration in n8n's Evaluation Test Runs Controller allows authenticated, read-only 'viewer' accounts to trigger, cancel, and delete workflow test runs without proper authorization.

An incorrect authorization vulnerability exists in the open-source workflow automation platform n8n within the Evaluation Test Runs Controller. In deployments utilizing Advanced Permissions, an authenticated user assigned a low-privilege project:viewer role can bypass configured permission policies. This allows the unauthorized user to execute, terminate, or delete workflow evaluation test runs by exploiting misconfigured API scope validations that map read-only scopes to mutating endpoints.

Vulnerability Overview

The Evaluation Test Runs component in n8n enables developers and operators to run diagnostic testing routines on defined workflow automation pipelines. Within enterprise-grade and cloud deployments of n8n, access control boundaries are enforced utilizing Advanced Permissions, which implement a Role-Based Access Control (RBAC) model. This system defines granular permissions such as project:viewer, project:editor, and project:admin to restrict interactions based on user roles.

The vulnerability is classified under Improper Privilege Management and Broken Authorization. The core attack surface consists of the HTTP endpoints exposed by the Evaluation Test Runs Controller. These endpoints are meant to gate sensitive, state-altering operations behind write-level scopes. Due to a declaration error in the backend controller decorators, mutating endpoints were configured to accept a read-only validation scope.

An authenticated user with read-only access (project:viewer) can exploit this vulnerability to perform unauthorized modifications within their associated projects. The visual flow below demonstrates how the role permission mapping bypasses the authorization guard:

Technical Root Cause Analysis

The root cause of this vulnerability lies in the improper mapping of authorization scopes to controller methods within n8n's NestJS framework backend. In n8n, permission checks are processed by route guards, specifically the ProjectMemberGuard. This guard intercepts incoming HTTP requests, decodes the caller's JSON Web Token (JWT), evaluates the user's role on the project, and matches it against the required scopes specified by a @Scopes() decorator on the target route.

To maintain security boundaries, read-only permissions such as viewing workflow schemas or execution histories are mapped to the workflow:read scope. State-changing actions, such as triggering executions, require the elevated workflow:execute scope, while schema alterations or database writes require workflow:update or workflow:delete scopes.

The vulnerability manifests because the developer utilized the @Scopes('workflow:read') decorator on three mutating endpoints within the Evaluation Test Runs Controller. Because the controller declared the read scope rather than execution or update scopes, the authorization engine permitted users possessing the low-privilege project:viewer role to successfully pass security validation.

Source Code Analysis and Patch Verification

To understand the implementation flaw, we examine the conceptual configuration of the vulnerable controller against the patched logic. In the vulnerable version, the routes handling creation, cancellation, and deletion of test runs were declared with weak scope requirements:

// VULNERABLE ROUTE DECLARATION
@Controller('evaluation-test-runs')
@UseGuards(ProjectMemberGuard)
export class EvaluationTestRunsController {
 
  @Post()
  @Scopes('workflow:read') // VULNERABILITY: Permitted read-only users to trigger executions
  async createEvaluationRun(@Body() data: CreateRunDto) {
    return this.evaluationService.start(data);
  }
 
  @Post(':id/cancel')
  @Scopes('workflow:read') // VULNERABILITY: Permitted read-only users to terminate active tasks
  async cancelEvaluationRun(@Param('id') id: string) {
    return this.evaluationService.cancel(id);
  }
 
  @Delete(':id')
  @Scopes('workflow:read') // VULNERABILITY: Permitted read-only users to delete database records
  async deleteEvaluationRecord(@Param('id') id: string) {
    return this.evaluationService.delete(id);
  }
}

The patch remediates this security flaw by updating the decorator metadata to align with appropriate access scopes, effectively hardening the endpoints against low-privilege access:

// PATCHED ROUTE DECLARATION
@Controller('evaluation-test-runs')
@UseGuards(ProjectMemberGuard)
export class EvaluationTestRunsController {
 
  @Post()
  @Scopes('workflow:execute') // FIXED: Now requires execution scope
  async createEvaluationRun(@Body() data: CreateRunDto) {
    return this.evaluationService.start(data);
  }
 
  @Post(':id/cancel')
  @Scopes('workflow:execute') // FIXED: Now requires execution scope
  async cancelEvaluationRun(@Param('id') id: string) {
    return this.evaluationService.cancel(id);
  }
 
  @Delete(':id')
  @Scopes('workflow:update') // FIXED: Now requires update/delete scope to alter records
  async deleteEvaluationRecord(@Param('id') id: string) {
    return this.evaluationService.delete(id);
  }
}

This fix is complete and robust because it leverages n8n's central role mapping framework. Once the correct scopes are defined, any attempt by a project:viewer to make request modifications triggers an immediate authorization rejection prior to controller execution.

Exploitation Methodology

To exploit this vulnerability, an attacker must have valid credentials to the target n8n instance and belong to a project with a minimum privilege level of project:viewer. Because the user interface suppresses buttons for execution or deletion based on the UI configuration, the attacker must bypass the frontend and interact directly with the API.

First, the attacker authenticates to obtain a valid JWT. Using read-only access, they query the workflow API to retrieve the target workflowId and associated projectId. Once these identifiers are obtained, they send direct HTTP requests targeting the vulnerable endpoints.

An attacker can trigger an unauthorized evaluation run by sending the following request:

POST /api/v1/evaluation-test-runs HTTP/1.1
Host: n8n.target-domain.com
Authorization: Bearer <Viewer_JWT_Token>
Content-Type: application/json
 
{
  "workflowId": "Wf_12345_Target",
  "projectId": "Proj_98765",
  "testData": {}
}

To disrupt operational activities, the attacker can cancel active, in-flight evaluation tests run by other engineers. They do this by querying active run IDs and dispatching a cancellation payload:

POST /api/v1/evaluation-test-runs/run_abc123_active/cancel HTTP/1.1
Host: n8n.target-domain.com
Authorization: Bearer <Viewer_JWT_Token>

Finally, the attacker can cover their tracks or alter historical compliance logs by issuing a delete instruction against the evaluation history database:

DELETE /api/v1/evaluation-test-runs/run_abc123_active HTTP/1.1
Host: n8n.target-domain.com
Authorization: Bearer <Viewer_JWT_Token>

Threat and Business Impact Assessment

The security impact of this vulnerability is measured by the potential disruption to automated testing pipelines and resource consumption. The ability to cancel in-flight evaluation runs allows malicious actors to execute a partial denial of service against continuous integration and testing suites, leading to delays in software deployment pipelines.

Furthermore, the deletion capability degrades system integrity by making historical testing trends and security log audits unreliable. This can pose compliance challenges in highly regulated corporate environments. Unauthorized execution of workflows also presents a platform abuse concern, as viewer accounts can repeatedly trigger tests that consume critical processing infrastructure, system memory, and external service provider API limits.

This vulnerability only affects deployments utilizing the Advanced Permissions structure, which is restricted to Enterprise and Cloud-licensed products. Standard community editions of n8n that do not use multi-tenant projects or role separation are not vulnerable to this vector, as authenticated users typically hold uniform execution and administrative privileges by design.

Remediation and Detection Controls

The primary remediation for this vulnerability is upgrading the n8n application to a secure version. Deployment administrators must apply the corresponding patch based on their operational release branch:

  • n8n 1.x Releases: Upgrade to 1.123.55 or later.
  • n8n 2.x Releases (prior to 2.26): Upgrade to 2.25.7 or later.
  • n8n 2.x Releases (2.26 and above): Upgrade to 2.26.2 or later.

If immediate software patching is not possible, organizations should implement temporary mitigations to lower risk. Administrators should audit project configurations and remove the project:viewer role from users who do not require live dashboard access. Instead, share static workflow exports to maintain operational airgaps.

To identify potential abuse of this vulnerability, security operations teams should inspect API logs for mutating HTTP methods (POST and DELETE) sent to the /api/v1/evaluation-test-runs path. Cross-referencing the executing JWT identity against the active n8n role mapping database will expose anomalies. Any mutating event initiated by an account with strict read-only authorization indicates successful exploitation.

Technical Appendix

CVSS Score
5.4/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L

Affected Systems

n8n Enterprise Edition with Advanced Permissions enabledn8n Cloud Edition with Advanced Permissions enabled

Affected Versions Detail

Product
Affected Versions
Fixed Version
n8n
n8n-io
< 1.123.551.123.55
n8n
n8n-io
>= 2.0.0 < 2.25.72.25.7
n8n
n8n-io
>= 2.26.0 < 2.26.22.26.2
AttributeDetail
CWE IDCWE-863 (Incorrect Authorization)
Attack VectorNetwork
CVSS v3.15.4
Exploit StatusProof of Concept / Technical details understood
Required Privilege LevelLow (project:viewer)
ImpactIntegrity Loss, Denial of Service (Testing Pipelines)

MITRE ATT&CK Mapping

T1548Abuse Elevation Control Mechanism
Privilege Escalation
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-863
Incorrect Authorization

The software performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly obtain the results of the check or does not associate the results with the correct actor, leading to a bypass of the intended restrictions.

Vulnerability Timeline

GitHub Security Advisory Published (GHSA-664h-gpgq-h6xx)
2026-06-17
Official patched versions released (1.123.55, 2.25.7, 2.26.2)
2026-06-17

References & Sources

  • [1]n8n Security Advisory (GHSA-664h-gpgq-h6xx)
  • [2]n8n Primary Source Repository

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

•1 day ago•CVE-2026-54068
5.9

CVE-2026-54068: Unauthenticated Server-Side Template Injection and SQLite Exfiltration in SiYuan PKM

An authentication bypass in the SiYuan personal knowledge management system before version 3.7.0 exposes a dynamic icon rendering endpoint. This endpoint processes client-supplied Go template directives. By submitting a crafted request, an unauthenticated remote attacker can leverage registered database template functions to execute arbitrary read-only SQL queries and exfiltrate workspace contents.

Amit Schendel
Amit Schendel
12 views•5 min read
•1 day ago•CVE-2026-54069
9.1

CVE-2026-54069: Authentication Bypass in SiYuan Note via Origin Header Spoofing

CVE-2026-54069 is a critical authentication bypass vulnerability in the SiYuan Note personal knowledge management system. The flaw is located in the HTTP server's middleware handling API authorization, which unconditionally trusts requests carrying a 'chrome-extension://' scheme in the Origin HTTP header, granting administrative access without validating API tokens.

Alon Barad
Alon Barad
10 views•5 min read
•2 days ago•CVE-2026-54089
9.1

CVE-2026-54089: Authentication Bypass by Spoofing in File Browser

CVE-2026-54089 is a critical authentication bypass vulnerability in File Browser affecting instances configured with proxy-based authentication. An unauthenticated remote attacker with direct network access can impersonate arbitrary users or register new accounts by spoofing configured HTTP headers.

Amit Schendel
Amit Schendel
8 views•7 min read
•2 days ago•GHSA-99J7-FHR2-XFJ4
10.0

GHSA-99J7-FHR2-XFJ4: Malicious Remote Code Execution Payload in 'exploration' Cargo Crate

The malicious Cargo package 'exploration' was uploaded to the crates.io registry. During compilation or package import, the crate executes code designed to establish an outbound TCP/HTTP connection, download an external second-stage binary, and execute the binary locally on the host machine. This creates an unauthenticated remote code execution vector impacting developer environments and continuous integration pipelines.

Amit Schendel
Amit Schendel
11 views•6 min read
•2 days ago•CVE-2026-54088
9.3

CVE-2026-54088: Pre-Authentication Remote Code Execution in File Browser Hook Authentication

CVE-2026-54088 is a critical command injection vulnerability in File Browser prior to version 2.63.6. When Hook Authentication is enabled, the application interpolates unsanitized credentials into a shell command, allowing unauthenticated remote code execution.

Alon Barad
Alon Barad
9 views•6 min read
•2 days ago•GHSA-QV4M-M73M-8HJ7
8.8

GHSA-qv4m-m73m-8hj7: Authenticated Arbitrary File Upload leading to Remote Code Execution in NotrinosERP

An authenticated remote code execution vulnerability exists in NotrinosERP (versions up to and including 1.0.0) within the Human Resource Management (HRM) module. Users with employee management permissions can upload arbitrary file types, including PHP scripts, which are written directly to a web-accessible directory. This allows for arbitrary code execution in the context of the web-server user.

Alon Barad
Alon Barad
8 views•6 min read