Multiple vulnerabilities in n8n - Code Execution via Repo-Local Git Config & Path Traversal to RCE & JS Task Runner Sandbox Escape to RCE
n8n is an open-source, fair-code workflow automation platform that lets users connect apps, APIs, and services through a visual node-based editor to build automated workflows, with self-hosted and cloud deployment options. GHSA-m87g-qr43-ccvc — Code execution in the n8n Git node via unchecked repository-local git configuration The n8n Git node executed certain values from a repository's local git configuration without neutralizing them. When such a value was present in a repository's configuration, any subsequent Git node operation against that repository ran it in the context of the n8n process user, resulting in remote code execution. The flaw was not reachable through the Git node's own configuration controls, which already restrict which keys can be set directly; exploitation therefore required a separate file-write vulnerability elsewhere to plant the malicious value first. Rated High (CVSS 7.7). Affected: < 1.123.69, < 2.33.4, < 2.34.1. Note that the advisory text and metadata disagree on the exact fixed versions — align on the higher bounds (1.123.69 / 2.33.4 / 2.34.1) to be safe. GHSA-6h4x-896x-fw5m — RCE in the n8n main process via path traversal in MCP node-schema loading The @n8n/workflow-sdk node-schema loader built a node's schema module path directly from the attacker-supplied node-type string, without filtering path-traversal sequences. An authenticated user holding global:member privileges could reference arbitrary files through directory traversal, leading to code execution inside the n8n main process. This issue affects the 2.x branch only. Rated High (CVSS 8.7), the most severe of the three. Affected: < 2.33.4, < 2.34.1. GHSA-m3hg-p5r9-fg9h — JavaScript task runner VM sandbox escape via EventEmitter prototype pollution leading to RCE The JavaScript task runner's prototype-freezing routine covered globalThis functions but missed internal module constructors such as EventEmitter. An authenticated user with Code node access could exploit this gap to run arbitrary commands inside the runner container. Because the polluted prototype is a single process-wide object, the corruption persisted across every other tenant's Code node execution subsequently scheduled on that shared runner (though not on the host). On v1.x instances that had not enabled task runners, Code node JavaScript executes directly in the main n8n process, where the impact of a comparable escape could be significantly higher. Rated High (CVSS 7.2). Affected: < 1.123.69, < 2.33.4, < 2.34.1.



