Bug Kritis ‘Sandbox’ vm2 Izinkan Penyerang Eksekusi Kode Berbahaya di Sistem Host

Sebuah kerentanan tingkat kritis telah ditemukan pada pustaka (library) sandbox Node.js yang sangat populer, vm2. Celah keamanan ini memungkinkan penyerang untuk keluar dari lingkungan sandbox yang terisolasi dan mengeksekusi kode arbitrer langsung pada sistem host.
Masalah keamanan yang sangat berbahaya ini dilacak di bawah kode CVE-2026-26956 dan telah dikonfirmasi memengaruhi vm2 versi 3.10.4, meskipun rilis yang lebih lama kemungkinan besar juga rentan. Lebih mengkhawatirkan lagi, kode eksploitasi Proof-of-Concept (PoC) untuk kerentanan ini telah dipublikasikan ke publik.
Dalam peringatan keamanannya, pengelola proyek menyatakan bahwa masalah ini secara spesifik berdampak pada lingkungan komputasi yang menjalankan Node.js 25 (dikonfirmasi pada Node.js 25.6.1) yang telah mengaktifkan penanganan pengecualian WebAssembly (WebAssembly exception handling) dan dukungan JSTag.
Ancaman bagi Platform Pengkodean dan SaaS
Sebagai konteks, vm2 adalah pustaka Node.js sumber terbuka (open-source) yang dirancang khusus untuk menjalankan kode JavaScript yang tidak tepercaya di dalam lingkungan sandbox yang dibatasi. Pustaka ini sangat umum digunakan oleh platform pengkodean online, alat otomatisasi, dan aplikasi perangkat lunak sebagai layanan (SaaS) yang mengeksekusi skrip buatan pengguna.
Pustaka ini pada dasarnya berupaya mengisolasi kode di dalam sandbox dari sistem host, serta memblokir akses ke API Node.js yang sensitif seperti proses (process) dan sistem file. Penggunaannya sangat masif, tercatat memiliki lebih dari 1,3 juta unduhan mingguan di npm (Node Package Manager), manajer paket baris perintah default untuk Node.js.
Mekanisme Eksploitasi: Menembus Batas Sandbox
Kerentanan CVE-2026-26956 berakar dari penanganan pengecualian (exceptions) yang keliru oleh pustaka tersebut saat melintasi batas antara lingkungan sandbox dan sistem host.
Peringatan keamanan menjelaskan bahwa vm2 biasanya mengandalkan perlindungan tingkat JavaScript untuk menjaga sistem dari kesalahan berbasis host dan Proxy jembatan yang membungkus objek lintas-konteks. Keduanya beroperasi sepenuhnya di dalam ekosistem JavaScript.
Namun, penanganan pengecualian WebAssembly nyatanya dapat mencegat kesalahan JavaScript pada tingkat yang lebih rendah di dalam mesin V8 Google, yang secara efektif melewati (bypass) seluruh pertahanan keamanan berbasis JavaScript milik vm2.
- Dengan memicu
TypeErroryang dimanipulasi secara khusus menggunakan konversi Symbol-to-string, peretas dapat menyebabkan objek kesalahan dari sisi host bocor kembali ke dalam sandbox tanpa disanitasi oleh vm2. - Karena objek yang bocor tersebut berasal dari lingkungan host, penyerang dapat menyalahgunakan rantai konstruktornya (constructor chain) untuk mendapatkan kembali akses ke internal Node.js.
- Hal ini memberi peretas kendali atas objek proses, yang pada akhirnya memungkinkan eksekusi perintah arbitrer tingkat sistem secara penuh pada host.
Peringatan keamanan resmi dari pengelola saat ini juga menyertakan eksploitasi PoC yang mendemonstrasikan secara langsung bagaimana celah ini digunakan untuk mendapatkan Eksekusi Kode Jarak Jauh (RCE) pada mesin host.
Rekomendasi Pembaruan Segera
Mengingat tingkat keparahannya, pengguna dan pengembang yang mengimplementasikan pustaka vm2 sangat disarankan untuk segera memperbarui versi mereka ke 3.10.5 atau yang lebih baru (versi terbaru saat ini adalah 3.11.2) guna memitigasi risiko eksploitasi CVE-2026-26956.
Celah ini menambah daftar panjang tantangan dalam mengamankan sandbox JavaScript. Pada awal tahun ini, vm2 juga terkena dampak kelemahan pelarian sandbox (sandbox escape) kritis lainnya yang dilacak sebagai CVE-2026-22709. Insiden serupa yang berdampak pada pustaka yang sama juga terjadi di tahun-tahun sebelumnya (CVE-2023-30547, CVE-2023-29017, dan CVE-2022-36067), yang mencerminkan betapa sulitnya mengisolasi kode yang tidak tepercaya secara aman dalam lingkungan JavaScript.








