August 14, 2026
CVE-2025-68613: Authenticated Remote Code Execution via Expression Injection pada n8n
Severity: Critical

By Arya Widyanto Utomo
5 min read
- Severity: Critical
- Vulnerability Class: Expression Injection → Remote Code Execution (CWE-95: Improper Neutralization of Directives in Dynamically Evaluated Code)
- Affected Component: n8n Workflow Automation Platform Expression Evaluation System
- Affected Versions: 0.211.0 hingga versi sebelum 1.120.4, 1.121.1, dan 1.122.0
- Patched Versions: 1.120.4, 1.121.1, 1.122.0, dan versi setelahnya
- Authentication Required: Ya (namun tanpa role/privilege khusus)
Ringkasan
n8n adalah platform workflow automation open-source berbasis Node.js yang banyak digunakan untuk menghubungkan berbagai API dan layanan melalui alur kerja (workflow) berbasis node. Salah satu fitur inti platform ini adalah expression evaluation system, yang memungkinkan pengguna menyisipkan ekspresi dinamis dibungkus dalam tanda kurung kurawal ganda ({{ }}) yang dievaluasi sebagai kode JavaScript saat workflow dijalankan.
CVE-2025–68613 adalah kerentanan expression injection pada sistem evaluasi tersebut. Ekspresi yang disuplai pengguna terautentikasi dievaluasi dalam konteks eksekusi yang tidak memiliki sandboxing maupun isolasi context yang memadai. Akibatnya, pengguna mana pun yang memiliki akses login tanpa memerlukan role administratif dapat mengeksekusi kode JavaScript arbitrer dengan privilese proses n8n itu sendiri, yang pada akhirnya memungkinkan eksekusi perintah sistem operasi secara langsung.
Poin krusial dari kerentanan ini adalah bahwa autentikasi tidak memberikan mitigasi yang berarti. Selama seorang aktor memiliki kredensial pengguna yang sah, apa pun tingkat privilesenya di dalam aplikasi, mereka dapat mencapai Remote Code Execution penuh terhadap server yang menjalankan instans n8n.
Latar Belakang Teknis
Komponen Arsitektur n8n yang Relevan
n8n dibangun sepenuhnya di atas Node.js dan JavaScript, baik untuk logika internal platform maupun logika workflow yang dibuat pengguna. Empat komponen yang relevan terhadap kerentanan ini:
- Workflow Execution Engine : komponen inti yang mengorkestrasikan eksekusi workflow berbasis node
- Expression Evaluation System : memproses ekspresi dinamis dalam {{ }} yang dievaluasi sebagai kode JavaScript selama eksekusi workflow
- Code Nodes : memungkinkan pengguna menulis kode JavaScript atau Python kustom sebagai langkah workflow
- 400+ Native Integrations : konektor siap pakai ke berbagai API dan layanan eksternal yang membentuk node dalam workflow
Root Cause
Kerentanan ini bersumber dari kombinasi dua kelemahan pada expression evaluation system:
- Input pengguna yang dibungkus {{ }} diproses sebagai kode JavaScript tanpa sandboxing atau validasi input yang memadai.
- Expression evaluator tidak menerapkan isolasi context yang layak, sehingga memungkinkan kode yang dievaluasi untuk keluar dari sandbox yang seharusnya membatasinya.
Kombinasi ini membuka jalur bagi kode yang dievaluasi untuk mengakses global object Node.js dan, dari sana, mengakses module system Node.js secara penuh termasuk module yang secara desain digunakan untuk berinteraksi langsung dengan sistem operasi.
Analisis Proof of Concept
Payload berikut dipublikasikan oleh peneliti dengan alias wioui:
Payload ini menggunakan pola Immediately Invoked Function Expression (IIFE) — (function(){ ... })() yang membuat fungsi anonim dan langsung mengeksekusinya. Pola ini memungkinkan penyerang membungkus logika bertingkat sambil mempertahankan konteks eksekusi yang dibutuhkan untuk mencapai module system Node.js.
Untuk memudahkan analisis, berikut versi payload yang telah diformat ulang:
Rantai Eskalasi Context
Eksploitasi ini bekerja melalui empat tahap eskalasi context yang berurutan:
Langkah Reproduksi
Pengujian dilakukan pada environment lab terisolasi menggunakan kredensial pengguna standar yang telah disediakan, tanpa privilese administratif khusus.
Prasyarat:
- Akses login yang valid ke instans n8n target
- Browser web (pengujian menggunakan Firefox)
Langkah-langkah:
- Login ke aplikasi n8n menggunakan kredensial pengguna terautentikasi.
- Buat workflow baru, pilih opsi mulai dari awal apabila diminta.
- Tambahkan node Manual Trigger sebagai langkah pertama workflow.
- Sambungkan node Edit Fields (Set) ke Manual Trigger tersebut.
- Pada node Edit Fields, tambahkan field baru dengan nama bebas (misalnya
result), dan tempelkan payload exploit pada kolom value.
- Eksekusi langkah tersebut.
Hasil eksekusi berupa output perintah sistem operasi yang ditampilkan langsung pada antarmuka aplikasi, mengonfirmasi keberhasilan Remote Code Execution.
Payload perintah id dapat digantikan dengan perintah sistem apa pun sesuai kebutuhan pengujian, termasuk pembacaan berkas sensitif, enumerasi sistem, maupun pembentukan koneksi reverse shell untuk akses lanjutan.
Dampak
Kerentanan ini memungkinkan penyerang yang memiliki kredensial pengguna n8n yang sah, terlepas dari tingkat privilesenya di dalam aplikasi, untuk:
- Mengeksekusi perintah sistem operasi arbitrer dengan privilese proses n8n
- Membaca, memodifikasi, atau menghapus berkas yang dapat diakses oleh proses n8n
- Membangun koneksi reverse shell untuk akses interaktif berkelanjutan terhadap server
- Melakukan pergerakan lateral lebih lanjut ke dalam jaringan internal, tergantung pada posisi dan konfigurasi server yang menjalankan n8n
- Mengakses kredensial dan konfigurasi sensitif yang tersimpan pada instans n8n, termasuk kredensial integrasi pihak ketiga yang terhubung ke workflow
Karena n8n sering digunakan sebagai penghubung antara berbagai sistem dan layanan (mengingat 400+ integrasi native yang didukung), server yang menjalankan n8n berpotensi memiliki akses jaringan dan kredensial yang luas terhadap sistem lain, memperbesar dampak potensial dari kompromi awal ini.
Rekomendasi Mitigasi
Bagi organisasi yang menjalankan instans n8n, langkah mitigasi berikut direkomendasikan sesuai prioritas:
- Terapkan pembaruan (patch) resmi dari pengembang n8n segera setelah tersedia
- Batasi akses jaringan terhadap instans n8n hanya kepada pengguna dan sistem yang benar-benar memerlukan akses, hindari eksposur langsung ke internet publik tanpa lapisan proteksi tambahan
- Audit seluruh akun pengguna yang memiliki akses ke instans n8n; nonaktifkan akun yang tidak lagi diperlukan
- Bagi pengembang platform automation serupa, pertimbangkan penerapan sandboxing yang benar-benar terisolasi (seperti isolated VM atau worker thread dengan context terbatas) untuk fitur evaluasi ekspresi dinamis, alih-alih mengandalkan pembatasan pada level sintaks semata
Kesimpulan
CVE-2025–68613 menggambarkan pola kerentanan yang umum ditemukan pada platform yang menawarkan fitur evaluasi ekspresi atau kode dinamis: batas antara "ekspresi yang aman untuk dievaluasi oleh pengguna" dan "akses penuh terhadap runtime environment" ternyata sangat tipis apabila sandboxing tidak diimplementasikan dengan benar. Kasus ini juga menegaskan sebuah prinsip keamanan yang penting autentikasi bukan pengganti untuk kontrol keamanan yang tepat pada fitur itu sendiri. Sebuah fitur yang hanya dapat diakses "setelah login" tetap dapat menjadi celah kritis apabila fitur tersebut secara fundamental tidak aman dari desainnya.
Bagi tim keamanan yang mengelola platform automation serupa (n8n atau platform sejenis lainnya), audit terhadap seluruh fitur yang melibatkan evaluasi ekspresi atau kode dinamis dari input pengguna sangat direkomendasikan, terlepas dari apakah fitur tersebut memerlukan autentikasi atau tidak.
Referensi
- CVE-2025–68613 — n8n Expression Evaluation Remote Code Execution
- Proof of Concept oleh peneliti wioui, tersedia di repositori publik GitHub
- https://tryhackme.com/room/n8ncve202568613
Catatan: Pengujian yang dijabarkan dalam tulisan ini dilakukan pada environment lab terkontrol dengan otorisasi eksplisit untuk tujuan pembelajaran keamanan. Teknik yang dijelaskan tidak boleh digunakan terhadap sistem yang tidak memiliki izin pengujian yang jelas.