A critical vulnerability in the popular workflow automation platform n8n has been dissected in a new analysis by security researcher Rhoda Smart, revealing how a feature designed for flexibility became a gateway for total system compromise. The flaw, tracked as CVE-2025-68668, allows authenticated users to escape the platform’s Python sandbox and execute arbitrary operating system commands, earning it a near-maximum CVSS score of 9.9.
Smart’s report describes the vulnerability as a fundamental architectural failure rather than a simple bug, turning the platform’s “Code Node” into a bridge for attackers to seize control of the underlying host.
At the heart of the issue is n8n’s Python Code Node, which uses Pyodide—a WebAssembly-based runtime—to execute Python scripts. The design was intended to isolate user code from the core application.
“The security assumption is that Python code executed through this node is isolated from the underlying system and cannot interact with the Node.js runtime or the host operating system,” Smart explains in the analysis. “In practice, this assumption breaks down”.
The failure stems from Pyodide’s most powerful feature: interoperability. To make the Python environment useful, it was given a bridge to interact with JavaScript objects. However, because n8n runs Pyodide inside the same process as the main application, this bridge connected untrusted Python code directly to the privileged Node.js runtime.
According to the report, the exploit path does not rely on complex memory corruption or undefined behavior. Instead, it abuses “documented interfaces and legitimate runtime bridges,” making it terrifyingly reliable.
The attack chain is straightforward: an attacker uses Python to import the JavaScript bridge, which then grants access to Node.js APIs. From there, they can invoke system commands.
“The result is full remote code execution with the same privileges as the n8n process, turning a workflow-level feature into a host-level compromise,” Smart writes.
The analysis characterizes the vulnerability as a “trust boundary collapse across execution layers”. By mixing multiple runtimes (Python and Node.js) in a single process without strong isolation, n8n inadvertently created a path for escalation.
“By abusing the Python-JavaScript interoperability exposed by Pyodide, an attacker can escape the intended sandbox, reach Node.js internals, and invoke native system commands,” the report states.
The implications are severe for the thousands of organizations using n8n for internal tooling. A single compromised account with workflow permissions is enough to take over the server.
“In environments where n8n is deployed as a shared automation platform, a single compromised or malicious user account can lead to complete system takeover,” the analysis warns.
The vulnerability affects n8n versions 1.0.0 up to, but not including, 2.0.0. The issue has been patched in version 2.0.0, which removes the dangerous in-process Pyodide execution entirely. For those unable to upgrade immediately, Smart notes that disabling Python execution via configuration flags (N8N_PYTHON_ENABLED=false) effectively neutralizes the threat.
Related Posts:
- n8n Under Fire: Critical CVSS 10.0 RCE Vulnerability Grants Total Server Access
- Critical n8n RCE Flaw (CVE-2025-65964) Allows Remote Code Execution via Git Node Configuration Manipulation
- A New Era for Windows: Microsoft’s Protocol Transforms OS into AI Agent Platform
- A New Bridge Between Worlds? Google’s Quick Share May Be Coming to iPhone